From c170ae113cbd6bd2c0af04738f0fcc5a81842a82 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Wed, 15 Mar 2023 23:34:50 +0000 Subject: [PATCH] feat: use mingcute icon --- package.json | 7 --- pnpm-lock.yaml | 56 ------------------- src/components/common/BlockchainInfo.tsx | 8 +-- src/components/common/CharacterList.tsx | 1 + src/components/common/CommentInput.tsx | 5 +- src/components/common/CommentItem.tsx | 17 +++--- src/components/common/ConnectButton.tsx | 27 ++++----- src/components/common/FollowingButton.tsx | 18 ++++-- src/components/common/PatronButton.tsx | 6 +- src/components/common/PatronModal.tsx | 10 ++-- src/components/common/Reactions.tsx | 11 ++-- src/components/dashboard/DashboardLayout.tsx | 45 ++++++++------- src/components/dashboard/DashboardSidebar.tsx | 7 +-- src/components/dashboard/PagesManager.tsx | 53 ++---------------- src/components/icons/BlockchainIcon.tsx | 21 +++---- src/components/icons/CrossbellIcon.tsx | 49 ---------------- src/components/icons/DashboardIcon.tsx | 18 ------ src/components/icons/LaughIcon.tsx | 21 ------- src/components/icons/LoveIcon.tsx | 22 -------- src/components/icons/PlanetIcon.tsx | 20 ------- src/components/main/MainLayout.tsx | 6 +- src/components/site/Platform.tsx | 5 +- src/components/site/PostMeta.tsx | 13 ++--- src/components/site/SiteHeader.tsx | 7 +-- src/components/site/SiteHome.tsx | 3 +- src/components/ui/EmptyState.tsx | 2 +- src/components/ui/ImageUploader.tsx | 10 ---- src/css/tailwind.css | 8 +-- src/editor/Bold.tsx | 2 +- src/editor/Code.tsx | 2 +- src/editor/CodeBlock.tsx | 2 +- src/editor/Heading.tsx | 4 +- src/editor/Image.tsx | 29 ++++++++-- src/editor/Italic.tsx | 2 +- src/editor/Link.tsx | 2 +- src/editor/ListOrdered.tsx | 2 +- src/editor/ListUnordered.tsx | 2 +- src/editor/Quote.tsx | 2 +- src/editor/Strikethrough.tsx | 2 +- src/editor/Underline.tsx | 2 +- src/editor/UploadImage.tsx | 32 ----------- src/editor/index.tsx | 2 - src/markdown/index.ts | 2 +- src/markdown/rehype-wrap-code.ts | 2 +- src/pages/dashboard/[subdomain]/events.tsx | 7 +-- .../[subdomain]/settings/general.tsx | 1 - src/pages/index.tsx | 24 +++----- 47 files changed, 163 insertions(+), 436 deletions(-) delete mode 100644 src/components/icons/CrossbellIcon.tsx delete mode 100644 src/components/icons/DashboardIcon.tsx delete mode 100644 src/components/icons/LaughIcon.tsx delete mode 100644 src/components/icons/LoveIcon.tsx delete mode 100644 src/components/icons/PlanetIcon.tsx delete mode 100644 src/editor/UploadImage.tsx diff --git a/package.json b/package.json index a7aff1b6..efaab9cb 100644 --- a/package.json +++ b/package.json @@ -33,14 +33,7 @@ "@floating-ui/react": "^0.20.1", "@headlessui/react": "1.7.12", "@heroicons/react": "2.0.16", - "@iconify-json/akar-icons": "1.1.13", - "@iconify-json/bi": "^1.1.15", - "@iconify-json/bxs": "^1.1.6", - "@iconify-json/carbon": "^1.1.16", - "@iconify-json/fluent": "^1.1.18", - "@iconify-json/mdi": "^1.1.50", "@iconify-json/mingcute": "^1.1.5", - "@iconify-json/tabler": "1.1.63", "@monaco-editor/react": "4.4.6", "@tanstack/react-query": "4.24.10", "@tanstack/react-query-devtools": "4.24.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca71c133..b600f2af 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,14 +17,7 @@ specifiers: '@floating-ui/react': ^0.20.1 '@headlessui/react': 1.7.12 '@heroicons/react': 2.0.16 - '@iconify-json/akar-icons': 1.1.13 - '@iconify-json/bi': ^1.1.15 - '@iconify-json/bxs': ^1.1.6 - '@iconify-json/carbon': ^1.1.16 - '@iconify-json/fluent': ^1.1.18 - '@iconify-json/mdi': ^1.1.50 '@iconify-json/mingcute': ^1.1.5 - '@iconify-json/tabler': 1.1.63 '@monaco-editor/react': 4.4.6 '@next/bundle-analyzer': 13.2.3 '@playwright/test': 1.31.1 @@ -151,14 +144,7 @@ dependencies: '@floating-ui/react': 0.20.1_zula6vjvt3wdocc4mwcxqa6nzi '@headlessui/react': 1.7.12_biqbaboplfbrettd7655fr4n2y '@heroicons/react': 2.0.16_react@18.2.0 - '@iconify-json/akar-icons': 1.1.13 - '@iconify-json/bi': 1.1.15 - '@iconify-json/bxs': 1.1.6 - '@iconify-json/carbon': 1.1.16 - '@iconify-json/fluent': 1.1.18 - '@iconify-json/mdi': 1.1.50 '@iconify-json/mingcute': 1.1.5 - '@iconify-json/tabler': 1.1.63 '@monaco-editor/react': 4.4.6_biqbaboplfbrettd7655fr4n2y '@tanstack/react-query': 4.24.10_biqbaboplfbrettd7655fr4n2y '@tanstack/react-query-devtools': 4.24.12_636dldj5wfr5vkyyqzs5k363kq @@ -2780,54 +2766,12 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@iconify-json/akar-icons/1.1.13: - resolution: {integrity: sha512-PyQwbPEp52/Wik0b6IzfmjaJ8C6fD5fa0BgX6dNEL8oiSpkhoMTnI2adWu+EFcDoenrPMz64LJSnGRfFpLK8Og==} - dependencies: - '@iconify/types': 2.0.0 - dev: false - - /@iconify-json/bi/1.1.15: - resolution: {integrity: sha512-NsbDeTVIYwgPLyAT0UgzuaCl79V65Z+M319BjbdEwdnbDGuaYgmAMBJUIWrnBEVoEg7rtouAuvaZRb3nIYIRcA==} - dependencies: - '@iconify/types': 2.0.0 - dev: false - - /@iconify-json/bxs/1.1.6: - resolution: {integrity: sha512-HTn+klVO4TtO/+2kTcFWFzD71aZr6H8rTybkMjuebYwdTEBlMCnjCu/3xdZr+x3Dtpd81WVwZfkZQk14VgNbRA==} - dependencies: - '@iconify/types': 2.0.0 - dev: false - - /@iconify-json/carbon/1.1.16: - resolution: {integrity: sha512-AD8bcnRSGA0WfcGEass2FbA0sagrUzrpFx5WchuDy3uf7yKBWumdypdQK121DH321fQDl5+zZQ26T6gC9knwUQ==} - dependencies: - '@iconify/types': 2.0.0 - dev: false - - /@iconify-json/fluent/1.1.18: - resolution: {integrity: sha512-tdfnNxTJW39t5FhGzf+LPMJyaW9lTIhVYpHReGbbK7Ivt/GksbbOFpXntUgAgrMqglxSmSOz7u0xBARS1a3waQ==} - dependencies: - '@iconify/types': 2.0.0 - dev: false - - /@iconify-json/mdi/1.1.50: - resolution: {integrity: sha512-SgbT5w5eHCdOG74ZWPz7HlTGk6VsifIJhNi6lAsxj/5Nlqt6Cz4LlQmSa9eecU9p075Jub2aAx/o7YI+GCahRQ==} - dependencies: - '@iconify/types': 2.0.0 - dev: false - /@iconify-json/mingcute/1.1.5: resolution: {integrity: sha512-k2CaSPbi3YXvV2O0U+PLPJzjLF+5WqcqTGc1apEle06tj5GPqAwRjCpaZsHjWo8jYhnmi6YyjXJmS/VX+5Kx9g==} dependencies: '@iconify/types': 2.0.0 dev: false - /@iconify-json/tabler/1.1.63: - resolution: {integrity: sha512-WvIsUJsil2+U1lPbguzbjG4v5sYqMkHp5P0PDXjwz/3XqS4mlFSicxmtSQcthRdQBbX2hMfXamtvqUYrNc2sCQ==} - dependencies: - '@iconify/types': 2.0.0 - dev: false - /@iconify/types/2.0.0: resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} diff --git a/src/components/common/BlockchainInfo.tsx b/src/components/common/BlockchainInfo.tsx index c5e91b51..c23188f8 100644 --- a/src/components/common/BlockchainInfo.tsx +++ b/src/components/common/BlockchainInfo.tsx @@ -1,8 +1,6 @@ import { CSB_IO, CSB_SCAN } from "~/lib/env" -import { UniLink } from "../ui/UniLink" import { Profile, Note } from "~/lib/types" import { Disclosure } from "@headlessui/react" -import { ChevronUpIcon } from "@heroicons/react/20/solid" import { BlockchainIcon } from "~/components/icons/BlockchainIcon" import { toIPFS, toGateway } from "~/lib/ipfs-parser" import { IPFS_GATEWAY } from "~/lib/env" @@ -24,9 +22,9 @@ export const BlockchainInfo: React.FC<{ className="flex w-full justify-between items-center rounded-lg px-4 py-2 text-left text-gray-900 hover:bg-hover transition-colors md:rounded-xl" aria-label="toggle chain info" > - - - + + + {t("signed and stored on the blockchain", { ns: "site", name: t( diff --git a/src/components/common/CharacterList.tsx b/src/components/common/CharacterList.tsx index c21618e4..ad28d2de 100644 --- a/src/components/common/CharacterList.tsx +++ b/src/components/common/CharacterList.tsx @@ -71,6 +71,7 @@ export const CharacterList: React.FC<{ "/tx/" + (sub.metadata?.proof || sub.transactionHash) } + className="flex items-center" > diff --git a/src/components/common/CommentInput.tsx b/src/components/common/CommentInput.tsx index aea4ac42..c4d5c14c 100644 --- a/src/components/common/CommentInput.tsx +++ b/src/components/common/CommentInput.tsx @@ -10,7 +10,6 @@ import { useCommentPage } from "~/queries/page" import { useRouter } from "next/router" import { EmojiPicker } from "./EmojiPicker" import { Popover } from "@headlessui/react" -import { FaceSmileIcon } from "@heroicons/react/24/outline" import { useTranslation } from "next-i18next" export const CommentInput: React.FC<{ @@ -87,8 +86,8 @@ export const CommentInput: React.FC<{ {({ open }: { open: boolean }) => ( <> - - + +
-
+
{comment?.character?.metadata?.content?.name} - {" "} - ·{" "} + + · {" "} - ·{" "} - - + + · + +
, + icon: "i-mingcute:grid-line", label: t("Dashboard") || "", url: `${SITE_URL}/dashboard`, }, { - icon: , + icon: "i-mingcute:copy-2-line", label: t(copyLabelDisplay) || "", onClick: copyLabel, }, ...(account?.type === "wallet" ? [ { - icon: , + icon: "i-mingcute:seal-line", label: ( <> {t("Operator Sign")} ( @@ -147,7 +140,7 @@ export const ConnectButton: React.FC<{ }, }, { - icon: , + icon: "i-mingcute:currency-euro-line", label: ( {balance?.formatted.replace(/\.(\d{5})\d*$/, ".$1") || @@ -158,20 +151,20 @@ export const ConnectButton: React.FC<{ onClick: csbDetailModal.show, }, { - icon: , + icon: "i-mingcute:repeat-line", label: t("Switch Characters") || "", onClick: selectCharactersModal.show, }, ] : [ { - icon: , + icon: "i-mingcute:vip-2-line", label: t("Upgrade to Wallet") || "", onClick: upgradeAccountModal.show, }, ]), { - icon: , + icon: "i-mingcute:exit-line", label: t("Disconnect") || "", onClick: disconnect, }, @@ -278,7 +271,7 @@ export const ConnectButton: React.FC<{ )}
- + )} @@ -303,7 +296,7 @@ export const ConnectButton: React.FC<{ aria-label={link.label} > - {link.icon} + {link.label} diff --git a/src/components/common/FollowingButton.tsx b/src/components/common/FollowingButton.tsx index 2bde18c2..2cafee4f 100644 --- a/src/components/common/FollowingButton.tsx +++ b/src/components/common/FollowingButton.tsx @@ -67,7 +67,7 @@ export const FollowingButton: React.FC<{ onClick={handleClickSubscribe} className={cn( className, - "align-middle space-x-1 group border-accent border text-sm sm:text-base", + "align-middle group border-accent border text-sm sm:text-base", { "text-accent": subscription.data, "opacity-60": subscription.data, @@ -85,14 +85,22 @@ export const FollowingButton: React.FC<{ aria-label="follow" isAutoWidth > - {subscription.data ? ( <> - {t("Following")} - {t("Unfollow")} + + {" "} + {t("Following")} + + + {" "} + {t("Unfollow")} + ) : ( - {t("Follow")} + + {" "} + {t("Follow")} + )} ) diff --git a/src/components/common/PatronButton.tsx b/src/components/common/PatronButton.tsx index 54e56673..651f7088 100644 --- a/src/components/common/PatronButton.tsx +++ b/src/components/common/PatronButton.tsx @@ -1,9 +1,7 @@ import { Button } from "~/components/ui/Button" import { Profile } from "~/lib/types" import { useTranslation } from "next-i18next" -import { HeartIcon } from "@heroicons/react/24/solid" import { cn } from "~/lib/utils" -import { Modal } from "~/components/ui/Modal" import { useState } from "react" import { PatronModal } from "~/components/common/PatronModal" @@ -23,10 +21,10 @@ export const PatronButton: React.FC<{ variant="text" aria-label={"Patron"} key={t("Patron")} - className={cn(className, "-mx-2")} + className={cn(className, "-mx-2 text-red-400")} onClick={() => setOpen(true)} > - + {t("Patron")} diff --git a/src/components/common/PatronModal.tsx b/src/components/common/PatronModal.tsx index fa6d855d..b6ad0745 100644 --- a/src/components/common/PatronModal.tsx +++ b/src/components/common/PatronModal.tsx @@ -1,11 +1,9 @@ import { Button } from "~/components/ui/Button" import { Note, Profile } from "~/lib/types" import { useTranslation } from "next-i18next" -import { HeartIcon } from "@heroicons/react/24/solid" import { Modal } from "~/components/ui/Modal" import { useEffect, useRef, useState } from "react" import { BoxRadio } from "~/components/ui/BoxRadio" -import { QuestionMarkCircleIcon } from "@heroicons/react/24/outline" import { Tabs } from "../ui/Tabs" import { useTipCharacter, useGetTips } from "~/queries/site" import { useAccountState } from "@crossbell/connect-kit" @@ -118,7 +116,11 @@ export const PatronModal: React.FC<{ open={open} setOpen={setOpen} title={title} - titleIcon={} + titleIcon={ + + + + } size="lg" >
@@ -218,7 +220,7 @@ export const PatronModal: React.FC<{

1 Mira ≈ 1 USDC

- + {t("What is Mira? Where can I get some?")}

diff --git a/src/components/common/Reactions.tsx b/src/components/common/Reactions.tsx index 32db7295..78b693e5 100644 --- a/src/components/common/Reactions.tsx +++ b/src/components/common/Reactions.tsx @@ -7,7 +7,7 @@ import { useToggleLikePage, useGetLikeCounts, } from "~/queries/page" -import { useAccountSites, useGetTips } from "~/queries/site" +import { useGetTips } from "~/queries/site" import { useState, useEffect, useRef } from "react" import { Button } from "../ui/Button" import { CSB_SCAN, CSB_XCHAR } from "~/lib/env" @@ -15,14 +15,13 @@ import { UniLink } from "~/components/ui/UniLink" import { Modal } from "~/components/ui/Modal" import { Avatar } from "../ui/Avatar" import { MintIcon } from "~/components/icons/MintIcon" -import { getMints, parsePageId } from "~/models/page.model" +import { parsePageId } from "~/models/page.model" import { CharacterList } from "~/components/common/CharacterList" import { cn } from "~/lib/utils" import { Tooltip } from "~/components/ui/Tooltip" import confetti from "canvas-confetti" import { Trans, useTranslation } from "next-i18next" import { Note, Profile } from "~/lib/types" -import { HeartIcon } from "@heroicons/react/24/solid" import { useAccountState } from "@crossbell/connect-kit" import { PatronModal } from "~/components/common/PatronModal" @@ -172,7 +171,7 @@ export const Reactions: React.FC<{ ) @@ -285,7 +284,9 @@ export const Reactions: React.FC<{ ref={tipRef} > {(() => { - const inner = + const inner = ( + + ) return ( {inner} diff --git a/src/components/dashboard/DashboardLayout.tsx b/src/components/dashboard/DashboardLayout.tsx index af05dc89..922cac14 100644 --- a/src/components/dashboard/DashboardLayout.tsx +++ b/src/components/dashboard/DashboardLayout.tsx @@ -20,7 +20,6 @@ import { useUserRole } from "~/hooks/useUserRole" import { useAccountState, useConnectModal } from "@crossbell/connect-kit" import { useTranslation } from "react-i18next" import { Logo } from "~/components/common/Logo" -import { QuestionMarkCircleIcon } from "@heroicons/react/24/outline" import { getStorage } from "~/lib/storage" import { useGetPagesBySite } from "~/queries/page" @@ -96,45 +95,49 @@ export function DashboardLayout({ { href: `/dashboard/${subdomain}`, isActive: ({ href, pathname }) => href === pathname, - icon: "i-bi-grid", + icon: "i-mingcute-grid-line", text: "Dashboard", }, { href: `/dashboard/${subdomain}/posts`, isActive: ({ href, pathname }) => href === pathname, - icon: "i-bi-layout-text-sidebar", + icon: "i-mingcute-news-line", text: "Posts", }, { href: `/dashboard/${subdomain}/pages`, isActive: ({ href, pathname }) => href === pathname, - icon: "i-bi-window-stack", + icon: "i-mingcute-file-line", text: "Pages", }, - { - onClick: showNotificationModal, - isActive: ({ href, pathname }) => href === pathname, - icon: isAllRead ? "i-bi:bell" : "i-bi:bell-fill", - text: isAllRead ? "Notifications" : "Unread notifications", - }, - { - href: `/dashboard/${subdomain}/events`, - isActive: ({ href, pathname }) => href === pathname, - icon: isEventsAllRead ? "i-bi-gift" : "i-bi-gift-fill", - text: isEventsAllRead ? "Events" : "New Events", - }, { href: `/dashboard/${subdomain}/import`, isActive: ({ pathname }) => pathname.startsWith(`/dashboard/${subdomain}/import`), - icon: "i-bi-hdd", + icon: "i-mingcute:file-import-line", text: "Import", }, + { + onClick: showNotificationModal, + isActive: ({ href, pathname }) => href === pathname, + icon: isAllRead + ? "i-mingcute:notification-line" + : "i-mingcute:notification-fill", + text: isAllRead ? "Notifications" : "Unread notifications", + }, + { + href: `/dashboard/${subdomain}/events`, + isActive: ({ href, pathname }) => href === pathname, + icon: isEventsAllRead + ? "i-mingcute-flag-4-line" + : "i-mingcute-flag-4-fill", + text: isEventsAllRead ? "Events" : "New Events", + }, { href: `/dashboard/${subdomain}/settings/general`, isActive: ({ pathname }) => pathname.startsWith(`/dashboard/${subdomain}/settings`), - icon: "i-bi-gear", + icon: "i-mingcute-settings-3-line", text: "Settings", }, ] @@ -220,7 +223,7 @@ export function DashboardLayout({ )} onClick={link.onClick} > - + {isOpen && {t(link.text)}} ) @@ -232,7 +235,7 @@ export function DashboardLayout({ href={DISCORD_LINK} className="space-x-1 text-zinc-500 hover:text-zinc-800 flex w-full h-12 items-center justify-center transition-colors mb-2" > - + {isOpen && {t("Need help?")}} - + {isOpen && {t("View Site")}}
diff --git a/src/components/dashboard/DashboardSidebar.tsx b/src/components/dashboard/DashboardSidebar.tsx index db4ca771..ed81badc 100644 --- a/src/components/dashboard/DashboardSidebar.tsx +++ b/src/components/dashboard/DashboardSidebar.tsx @@ -1,4 +1,3 @@ -import { ChevronRightIcon, ChevronLeftIcon } from "@heroicons/react/20/solid" import { useState, useEffect, useMemo } from "react" import { setStorage, getStorage } from "~/lib/storage" @@ -29,13 +28,13 @@ export const DashboardSidebar: React.FC<{ {children(isOpen)}
setIsOpen(!isOpen)} > {isOpen ? ( - + ) : ( - + )}
diff --git a/src/components/dashboard/PagesManager.tsx b/src/components/dashboard/PagesManager.tsx index 2e780898..0e2ffa91 100644 --- a/src/components/dashboard/PagesManager.tsx +++ b/src/components/dashboard/PagesManager.tsx @@ -16,13 +16,11 @@ import { useDeletePage, useCreateOrUpdatePage, } from "~/queries/page" -import { EllipsisHorizontalIcon } from "@heroicons/react/20/solid" import { delStorage, getStorage, setStorage } from "~/lib/storage" import { useQueryClient } from "@tanstack/react-query" import { Button } from "../ui/Button" import { UniLink } from "../ui/UniLink" import { nanoid } from "nanoid" -import { renderPageContent } from "~/markdown" import { Tooltip } from "../ui/Tooltip" import { APP_NAME } from "~/lib/env" import { Trans, useTranslation } from "next-i18next" @@ -132,20 +130,7 @@ export const PagesManager: React.FC<{ return [ { text: "Edit", - icon: ( - - - - - ), + icon: , onClick() { router.push(getPageEditLink(page)) }, @@ -158,7 +143,7 @@ export const PagesManager: React.FC<{ : isPost ? "Page" : "Post"), - icon: , + icon: , onClick() { const toastId = toast.loading("Converting...") if (isCrossbell) { @@ -201,22 +186,7 @@ export const PagesManager: React.FC<{ }, { text: "Delete", - icon: ( - - - - - - - ), + icon: , onClick() { if (!page.metadata) { const toastId = toast.loading("Deleting...") @@ -332,18 +302,7 @@ export const PagesManager: React.FC<{ ) } > - - - - + {t(`New ${isPost ? "Post" : "Page"}`)} @@ -352,7 +311,7 @@ export const PagesManager: React.FC<{ placement="bottom" > @@ -415,7 +374,7 @@ export const PagesManager: React.FC<{ e.stopPropagation() }} > - + diff --git a/src/components/icons/BlockchainIcon.tsx b/src/components/icons/BlockchainIcon.tsx index 997dd566..50f92bf7 100644 --- a/src/components/icons/BlockchainIcon.tsx +++ b/src/components/icons/BlockchainIcon.tsx @@ -1,18 +1,15 @@ import React from "react" +import { cn } from "~/lib/utils" -export const BlockchainIcon: React.FC> = ( - props, -) => { +export const BlockchainIcon = ({ className }: { className?: string }) => { return ( - - - + + ) } diff --git a/src/components/icons/CrossbellIcon.tsx b/src/components/icons/CrossbellIcon.tsx deleted file mode 100644 index f2b1f1f0..00000000 --- a/src/components/icons/CrossbellIcon.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import React from "react" - -export const CrossbellIcon: React.FC> = ( - props, -) => { - return ( - - - - - - - - - - - - - - - ) -} diff --git a/src/components/icons/DashboardIcon.tsx b/src/components/icons/DashboardIcon.tsx deleted file mode 100644 index 04c19046..00000000 --- a/src/components/icons/DashboardIcon.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from "react" - -export const DashboardIcon: React.FC> = ( - props, -) => { - return ( - - - - ) -} diff --git a/src/components/icons/LaughIcon.tsx b/src/components/icons/LaughIcon.tsx deleted file mode 100644 index 7298de81..00000000 --- a/src/components/icons/LaughIcon.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import React from "react" - -export const LaughIcon: React.FC> = ( - props, -) => { - return ( - - - - ) -} diff --git a/src/components/icons/LoveIcon.tsx b/src/components/icons/LoveIcon.tsx deleted file mode 100644 index 99706ec9..00000000 --- a/src/components/icons/LoveIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react" - -export const LoveIcon: React.FC> = ( - props, -) => { - return ( - - - - ) -} diff --git a/src/components/icons/PlanetIcon.tsx b/src/components/icons/PlanetIcon.tsx deleted file mode 100644 index 4fac30eb..00000000 --- a/src/components/icons/PlanetIcon.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react" - -export const PlanetIcon: React.FC> = ( - props, -) => { - return ( - - - - ) -} diff --git a/src/components/main/MainLayout.tsx b/src/components/main/MainLayout.tsx index 98333fdc..959a4541 100644 --- a/src/components/main/MainLayout.tsx +++ b/src/components/main/MainLayout.tsx @@ -69,17 +69,17 @@ export function MainLayout({ {GITHUB_LINK && ( - + )} {DISCORD_LINK && ( - + )} {TWITTER_LINK && ( - + )} diff --git a/src/components/site/Platform.tsx b/src/components/site/Platform.tsx index b43d2ac2..1cfed372 100644 --- a/src/components/site/Platform.tsx +++ b/src/components/site/Platform.tsx @@ -1,6 +1,5 @@ import { Image } from "~/components/ui/Image" import { UniLink } from "~/components/ui/UniLink" -import { PlanetIcon } from "~/components/icons/PlanetIcon" import { Tooltip } from "~/components/ui/Tooltip" import { cn } from "~/lib/utils" @@ -100,8 +99,8 @@ export const Platform: React.FC<{ {syncMap[platform]?.icon ? ( {platform} ) : ( - - + + )} diff --git a/src/components/site/PostMeta.tsx b/src/components/site/PostMeta.tsx index 24d7ad56..1b2d7760 100644 --- a/src/components/site/PostMeta.tsx +++ b/src/components/site/PostMeta.tsx @@ -6,11 +6,6 @@ import { useEffect, useState } from "react" import { CharacterFloatCard } from "~/components/common/CharacterFloatCard" import { getSiteLink } from "~/lib/helpers" import { Avatar } from "~/components/ui/Avatar" -import { - EyeIcon, - PencilSquareIcon, - LightBulbIcon, -} from "@heroicons/react/24/outline" import { useUserRole } from "~/hooks/useUserRole" import { useTranslation } from "next-i18next" import { useDate } from "~/hooks/useDate" @@ -74,7 +69,7 @@ export const PostMeta: React.FC<{ ) : null} - + {page.views} {author?.username && site?.username !== author?.username && ( @@ -100,7 +95,7 @@ export const PostMeta: React.FC<{ )} url.startsWith(CSB_SCAN + "/tx/"), @@ -116,14 +111,14 @@ export const PostMeta: React.FC<{ page.id }&type=${page.tags?.includes("post") ? "post" : "page"}`} > - Edit + Edit )} {(summary.isLoading || summary.data) && (
- + {t("AI-generated summary")}
diff --git a/src/components/site/SiteHeader.tsx b/src/components/site/SiteHeader.tsx index 508c3540..1f48fe93 100644 --- a/src/components/site/SiteHeader.tsx +++ b/src/components/site/SiteHeader.tsx @@ -8,7 +8,6 @@ import { UniLink } from "../ui/UniLink" import { Profile } from "~/lib/types" import { ConnectButton } from "../common/ConnectButton" import { BlockchainIcon } from "~/components/icons/BlockchainIcon" -import { EllipsisHorizontalIcon } from "@heroicons/react/20/solid" import { Image } from "~/components/ui/Image" import { FollowingButton } from "~/components/common/FollowingButton" import { FollowingCount } from "~/components/common/FollowingCount" @@ -90,7 +89,7 @@ export const SiteHeader: React.FC<{ }, { text: "View on Crossbell Scan", - icon: , + icon: , url: `${CSB_SCAN}/address/${site?.metadata?.owner}`, }, { @@ -221,9 +220,9 @@ export const SiteHeader: React.FC<{ } dropdown={ diff --git a/src/components/site/SiteHome.tsx b/src/components/site/SiteHome.tsx index f284e90b..501afd83 100644 --- a/src/components/site/SiteHome.tsx +++ b/src/components/site/SiteHome.tsx @@ -5,7 +5,6 @@ import { EmptyState } from "../ui/EmptyState" import { useRouter } from "next/router" import { Image } from "~/components/ui/Image" import { Button } from "~/components/ui/Button" -import { EyeIcon } from "@heroicons/react/24/outline" import { useTranslation } from "next-i18next" import { useEffect, useState } from "react" @@ -79,7 +78,7 @@ export const SiteHome: React.FC<{ )} - + {post.views}
diff --git a/src/components/ui/EmptyState.tsx b/src/components/ui/EmptyState.tsx index 3965e289..d04f7d72 100644 --- a/src/components/ui/EmptyState.tsx +++ b/src/components/ui/EmptyState.tsx @@ -1,7 +1,7 @@ export const EmptyState: React.FC<{ resource?: string }> = ({ resource }) => { return (
- +
{" "} No {resource || "posts"} Yet. diff --git a/src/components/ui/ImageUploader.tsx b/src/components/ui/ImageUploader.tsx index 8509df7b..161f24c1 100644 --- a/src/components/ui/ImageUploader.tsx +++ b/src/components/ui/ImageUploader.tsx @@ -4,7 +4,6 @@ import { useState } from "react" import { useUploadFile } from "~/hooks/useUploadFile" import { toGateway } from "~/lib/ipfs-parser" import { Image } from "~/components/ui/Image" -import { XMarkIcon } from "@heroicons/react/20/solid" const getBase64 = (img: File, callback: (url: string) => void) => { const reader = new FileReader() @@ -19,7 +18,6 @@ export const ImageUploader = forwardRef(function ImageUploader( uploadStart, uploadEnd, withMimeType, - hasClose, ...inputProps }: { className?: string @@ -136,14 +134,6 @@ export const ImageUploader = forwardRef(function ImageUploader( type="file" className="absolute top-0 bottom-0 left-0 right-0 opacity-0" /> - {imageUrl && hasClose && ( -
- -
- )} {loading && (
diff --git a/src/css/tailwind.css b/src/css/tailwind.css index 0f401675..a91c04ae 100644 --- a/src/css/tailwind.css +++ b/src/css/tailwind.css @@ -158,12 +158,12 @@ a { @apply text-gray-500 fill-gray-500; } .button.is-tip:hover { - color: #f87171; - fill: #f87171; + color: #ef4444; + fill: #ef4444; } .button.is-tip.active { - color: #f87171; - fill: #f87171; + color: #ef4444; + fill: #ef4444; } .button.is-crossbell { diff --git a/src/editor/Bold.tsx b/src/editor/Bold.tsx index dbe4ab77..d9923c68 100644 --- a/src/editor/Bold.tsx +++ b/src/editor/Bold.tsx @@ -4,7 +4,7 @@ import { ICommand, wrapExecute } from "." export const Bold: ICommand = { name: "bold", label: "Bold", - icon: "i-bi:type-bold", + icon: "i-mingcute:bold-line", execute: (view) => { wrapExecute({ view, prepend: "**", append: "**" }) }, diff --git a/src/editor/Code.tsx b/src/editor/Code.tsx index 38ca17e9..b0238c9c 100644 --- a/src/editor/Code.tsx +++ b/src/editor/Code.tsx @@ -4,7 +4,7 @@ import { ICommand, wrapExecute } from "." export const Code: ICommand = { name: "code", label: "Inline Code", - icon: "i-bi:code", + icon: "i-mingcute:code-line", execute: (view) => { wrapExecute({ view, prepend: "`", append: "`" }) }, diff --git a/src/editor/CodeBlock.tsx b/src/editor/CodeBlock.tsx index 6fd0d890..9e859edc 100644 --- a/src/editor/CodeBlock.tsx +++ b/src/editor/CodeBlock.tsx @@ -3,7 +3,7 @@ import { ICommand, wrapExecute } from "." export const CodeBlock: ICommand = { name: "codeblock", label: "Code Block", - icon: "i-bi:body-text", + icon: "i-mingcute:web-line", execute: (view) => { wrapExecute({ view, prepend: "```\n", append: "\n```" }) }, diff --git a/src/editor/Heading.tsx b/src/editor/Heading.tsx index fd438b80..67fa758d 100644 --- a/src/editor/Heading.tsx +++ b/src/editor/Heading.tsx @@ -3,8 +3,8 @@ import { ICommand, prependExecute } from "." export const Heading: ICommand = { name: "heading", label: "Heading", - icon: "i-bi:type-h3", + icon: "i-mingcute:heading-2-line", execute: (view) => { - prependExecute({ view, prepend: "### " }) + prependExecute({ view, prepend: "## " }) }, } diff --git a/src/editor/Image.tsx b/src/editor/Image.tsx index a910df38..ee1ea582 100644 --- a/src/editor/Image.tsx +++ b/src/editor/Image.tsx @@ -1,11 +1,32 @@ import { EditorSelection } from "@codemirror/state" import { ICommand, prependExecute, wrapExecute } from "." +import { UploadFile } from "~/lib/upload-file" +import toast from "react-hot-toast" export const Image: ICommand = { - name: "image", - label: "Image", - icon: "i-bi:image", + name: "upload-image", + label: "Upload Image", + icon: "i-mingcute:photo-album-line", execute: (view) => { - wrapExecute({ view, prepend: "![", append: "]()" }) + const input = document.createElement("input") + input.type = "file" + input.addEventListener("change", async (e: any) => { + const toastId = toast.loading("Uploading...") + + const file = e.target?.files?.[0] + try { + const { key } = await UploadFile(file) + wrapExecute({ view, prepend: "", append: `![${file.name}](${key})` }) + + toast.success("Uploaded!", { + id: toastId, + }) + } catch (error) { + if (error instanceof Error) { + toast.error(error.message, { id: toastId }) + } + } + }) + input.click() }, } diff --git a/src/editor/Italic.tsx b/src/editor/Italic.tsx index 60390e7e..c83dd8a3 100644 --- a/src/editor/Italic.tsx +++ b/src/editor/Italic.tsx @@ -3,7 +3,7 @@ import { ICommand, wrapExecute } from "." export const Italic: ICommand = { name: "italic", label: "Italic", - icon: "i-bi:type-italic", + icon: "i-mingcute:italic-line", execute: (view) => { wrapExecute({ view, prepend: "_", append: "_" }) }, diff --git a/src/editor/Link.tsx b/src/editor/Link.tsx index bf58d32f..ed854f55 100644 --- a/src/editor/Link.tsx +++ b/src/editor/Link.tsx @@ -4,7 +4,7 @@ import { ICommand, prependExecute, wrapExecute } from "." export const Link: ICommand = { name: "link", label: "Link", - icon: "i-bi:link", + icon: "i-mingcute:link-2-line", execute: (view) => { wrapExecute({ view, prepend: "[", append: "]()" }) }, diff --git a/src/editor/ListOrdered.tsx b/src/editor/ListOrdered.tsx index 756131f3..9db50199 100644 --- a/src/editor/ListOrdered.tsx +++ b/src/editor/ListOrdered.tsx @@ -4,7 +4,7 @@ import { ICommand, wrapExecute } from "." export const ListOrdered: ICommand = { name: "list-ordered", label: "Ordered List", - icon: "i-bi:list-ol", + icon: "i-mingcute:list-ordered-line", execute: (view) => { wrapExecute({ view, prepend: "1. ", append: "\n" }) }, diff --git a/src/editor/ListUnordered.tsx b/src/editor/ListUnordered.tsx index a9f5556f..ca4cbe0c 100644 --- a/src/editor/ListUnordered.tsx +++ b/src/editor/ListUnordered.tsx @@ -3,7 +3,7 @@ import { ICommand, wrapExecute } from "." export const ListUnordered: ICommand = { name: "list-unordered", label: "Unordered List", - icon: "i-bi:list-ul", + icon: "i-mingcute:list-check-line", execute: (view) => { wrapExecute({ view, prepend: "- ", append: "\n" }) }, diff --git a/src/editor/Quote.tsx b/src/editor/Quote.tsx index 9bbad56c..f4955d69 100644 --- a/src/editor/Quote.tsx +++ b/src/editor/Quote.tsx @@ -3,7 +3,7 @@ import { ICommand, wrapExecute } from "." export const Quote: ICommand = { name: "quote", label: "Quote", - icon: "i-bi:quote", + icon: "i-mingcute:quote-left-fill", execute: (view) => { wrapExecute({ view, prepend: "> ", append: "\n" }) }, diff --git a/src/editor/Strikethrough.tsx b/src/editor/Strikethrough.tsx index 5d13e40c..49afde01 100644 --- a/src/editor/Strikethrough.tsx +++ b/src/editor/Strikethrough.tsx @@ -3,7 +3,7 @@ import { ICommand, wrapExecute } from "." export const Strikethrough: ICommand = { name: "strikethrough", label: "Strikethrough", - icon: "i-bi:type-strikethrough", + icon: "i-mingcute:strikethrough-line", execute: (view) => { wrapExecute({ view, prepend: "~~", append: "~~" }) }, diff --git a/src/editor/Underline.tsx b/src/editor/Underline.tsx index 16bb162f..1ee61b41 100644 --- a/src/editor/Underline.tsx +++ b/src/editor/Underline.tsx @@ -3,7 +3,7 @@ import { ICommand, wrapExecute } from "." export const Underline: ICommand = { name: "underline", label: "Underline", - icon: "i-bi:type-underline", + icon: "i-mingcute:underline-line", execute: (view) => { wrapExecute({ view, prepend: "", append: "" }) }, diff --git a/src/editor/UploadImage.tsx b/src/editor/UploadImage.tsx deleted file mode 100644 index 323285ae..00000000 --- a/src/editor/UploadImage.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { EditorSelection } from "@codemirror/state" -import { ICommand, prependExecute, wrapExecute } from "." -import { UploadFile } from "~/lib/upload-file" -import toast from "react-hot-toast" - -export const UploadImage: ICommand = { - name: "upload-image", - label: "Upload Image", - icon: "i-carbon:cloud-upload", - execute: (view) => { - const input = document.createElement("input") - input.type = "file" - input.addEventListener("change", async (e: any) => { - const toastId = toast.loading("Uploading...") - - const file = e.target?.files?.[0] - try { - const { key } = await UploadFile(file) - wrapExecute({ view, prepend: "", append: `![${file.name}](${key})` }) - - toast.success("Uploaded!", { - id: toastId, - }) - } catch (error) { - if (error instanceof Error) { - toast.error(error.message, { id: toastId }) - } - } - }) - input.click() - }, -} diff --git a/src/editor/index.tsx b/src/editor/index.tsx index 25fb4a1f..44acf401 100644 --- a/src/editor/index.tsx +++ b/src/editor/index.tsx @@ -6,7 +6,6 @@ import { Code } from "./Code" import { CodeBlock } from "./CodeBlock" import { Heading } from "./Heading" import { Image } from "./Image" -import { UploadImage } from "./UploadImage" import { Italic } from "./Italic" import { Link } from "./Link" import { ListOrdered } from "./ListOrdered" @@ -128,5 +127,4 @@ export const toolbars: ICommand[] = [ ListOrdered, Link, Image, - UploadImage, ] diff --git a/src/markdown/index.ts b/src/markdown/index.ts index 1ccff201..f3448359 100644 --- a/src/markdown/index.ts +++ b/src/markdown/index.ts @@ -126,7 +126,7 @@ export const renderPageContent = ( type: "element", tagName: "span", properties: { - className: ["i-akar-icons:link-chain"], + className: ["i-mingcute:link-line"], }, children: [], }, diff --git a/src/markdown/rehype-wrap-code.ts b/src/markdown/rehype-wrap-code.ts index b229d755..f0842d0a 100644 --- a/src/markdown/rehype-wrap-code.ts +++ b/src/markdown/rehype-wrap-code.ts @@ -23,7 +23,7 @@ export const rehypeWrapCode: Plugin, Root> = () => { u("element", { tagName: "span", properties: { - className: "i-bxs-copy", + className: "i-mingcute:copy-2-line", }, children: [], }), diff --git a/src/pages/dashboard/[subdomain]/events.tsx b/src/pages/dashboard/[subdomain]/events.tsx index 70a8e8e6..3708d444 100644 --- a/src/pages/dashboard/[subdomain]/events.tsx +++ b/src/pages/dashboard/[subdomain]/events.tsx @@ -14,7 +14,6 @@ import { CharacterFloatCard } from "~/components/common/CharacterFloatCard" import { useEffect, useState } from "react" import { Avatar } from "~/components/ui/Avatar" import { cn } from "~/lib/utils" -import { ChevronRightIcon } from "@heroicons/react/20/solid" import { getSiteLink } from "~/lib/helpers" import { getStorage, setStorage } from "~/lib/storage" @@ -78,8 +77,8 @@ export default function EventsPage() { return ( -
-
+
+
{pages.data?.pages[0]?.list.map((item) => { let status if (item.metadata?.frontMatter?.EndTime < new Date()) { @@ -177,7 +176,7 @@ export default function EventsPage() { } > {t("Learn more")}{" "} - +
diff --git a/src/pages/dashboard/[subdomain]/settings/general.tsx b/src/pages/dashboard/[subdomain]/settings/general.tsx index 97e2669e..8fe9675a 100644 --- a/src/pages/dashboard/[subdomain]/settings/general.tsx +++ b/src/pages/dashboard/[subdomain]/settings/general.tsx @@ -151,7 +151,6 @@ export default function SiteSettingsGeneralPage() { setBannerUploading(false) }} withMimeType={true} - hasClose={true} {...(field as any)} /> )} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 0706d682..7f0e9705 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,10 +1,7 @@ import { GetServerSideProps } from "next" import { useState } from "react" -import { DashboardIcon } from "~/components/icons/DashboardIcon" import { MainLayout } from "~/components/main/MainLayout" import { UniLink } from "~/components/ui/UniLink" -import { BlockchainIcon } from "~/components/icons/BlockchainIcon" -import { LaughIcon } from "~/components/icons/LaughIcon" import { Button } from "~/components/ui/Button" import { useAccountState, useConnectedAction } from "@crossbell/connect-kit" import { useRefCallback } from "@crossbell/util-hooks" @@ -19,12 +16,7 @@ import { useGetSites } from "~/queries/site" import showcase from "../../showcase.json" import { CharacterFloatCard } from "~/components/common/CharacterFloatCard" import { useAccountSites, useSubscribeToSites } from "~/queries/site" -import { - BoltIcon, - FingerPrintIcon, - RssIcon, - EllipsisHorizontalIcon, -} from "@heroicons/react/24/outline" +import { RssIcon } from "@heroicons/react/24/outline" import { Tooltip } from "~/components/ui/Tooltip" import { XCharLogo, @@ -265,7 +257,7 @@ export default function Home() { {features.map((feature) => ( {t(feature.title)} {t(".")} @@ -291,16 +283,16 @@ export default function Home() { blogging community for everyone. -
+
@@ -586,7 +578,7 @@ export default function Home() { ))}
  • - +