From 714500697b55825014b8883e41069d0fbc6213d6 Mon Sep 17 00:00:00 2001 From: 0xExp-po <153439271+0xExp-po@users.noreply.github.com> Date: Tue, 3 Dec 2024 04:54:59 +0900 Subject: [PATCH] Update SEO in front end (#103) --- dapp/public/icons/logos/twitter-x.svg | 10 ++ .../components/page/project/ProjectInfo.astro | 2 +- .../components/page/proposal/ProposalPage.tsx | 100 ++++++++++-------- dapp/src/constants/demoConfigData.js | 35 ------ dapp/src/layouts/Layout.astro | 12 +-- website/docusaurus.config.ts | 14 +++ 6 files changed, 86 insertions(+), 87 deletions(-) create mode 100644 dapp/public/icons/logos/twitter-x.svg diff --git a/dapp/public/icons/logos/twitter-x.svg b/dapp/public/icons/logos/twitter-x.svg new file mode 100644 index 00000000..495eb510 --- /dev/null +++ b/dapp/public/icons/logos/twitter-x.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/dapp/src/components/page/project/ProjectInfo.astro b/dapp/src/components/page/project/ProjectInfo.astro index 9682185a..dfe4e3bf 100644 --- a/dapp/src/components/page/project/ProjectInfo.astro +++ b/dapp/src/components/page/project/ProjectInfo.astro @@ -900,7 +900,7 @@ import DonateModal from "./DonateModal.astro"; const icons: { [key: string]: string } = { web: "/icons/logos/web.svg", github: "/icons/logos/github.svg", - twitter: "/icons/logos/twitter.svg", + twitter: "/icons/logos/twitter-x.svg", telegram: "/icons/logos/telegram.svg", discord: "/icons/logos/discord.svg", }; diff --git a/dapp/src/components/page/proposal/ProposalPage.tsx b/dapp/src/components/page/proposal/ProposalPage.tsx index 7b3c0ee2..6b796289 100644 --- a/dapp/src/components/page/proposal/ProposalPage.tsx +++ b/dapp/src/components/page/proposal/ProposalPage.tsx @@ -21,6 +21,7 @@ import { } from "@service/ProposalService"; import { getProjectFromName } from "@service/ReadContractService"; import type { ProposalOutcome, ProposalView, VoteType } from "types/proposal"; +import Loading from "components/utils/Loading"; const ProposalPage: React.FC = () => { const id = useStore(proposalId); @@ -35,6 +36,7 @@ const ProposalPage: React.FC = () => { const [outcome, setOutcome] = useState(null); const [voteType, setVoteType] = useState(); const [projectMaintainers, setProjectMaintainers] = useState([]); + const [isLoading, setIsLoading] = useState(true); const openVotersModal = (voteType: VoteType) => { if (proposal?.status !== "active") { @@ -64,6 +66,7 @@ const ProposalPage: React.FC = () => { }; const getProposalDetails = async () => { if (id && projectName) { + setIsLoading(true); const proposal = demoProposalData.find((p) => p.id === id); const projectInfo = await getProjectFromName(projectName); if (projectInfo && projectInfo.maintainers) { @@ -80,6 +83,7 @@ const ProposalPage: React.FC = () => { } else { alert("Proposal not found"); } + setIsLoading(false); } else { alert("Project name or proposal id is not provided"); } @@ -87,53 +91,61 @@ const ProposalPage: React.FC = () => { useEffect(() => { getProposalDetails(); - }, [id]); + }, [id, projectName]); return ( -
- openVotingModal()} - executeProposal={() => openExecuteProposalModal()} - status={proposal?.status || null} - maintainers={projectMaintainers} - /> -
- - openVotersModal(voteType)} - /> - -
- {isVotersModalOpen && proposal?.voteStatus && ( - setIsVotersModalOpen(false)} - /> + <> + {isLoading ? ( +
+ +
+ ) : ( + <> + openVotingModal()} + executeProposal={() => openExecuteProposalModal()} + status={proposal?.status || null} + maintainers={projectMaintainers} + /> +
+ + openVotersModal(voteType)} + /> + +
+ {isVotersModalOpen && proposal?.voteStatus && ( + setIsVotersModalOpen(false)} + /> + )} + {isVotingModalOpen && ( + setIsVotingModalOpen(false)} /> + )} + {isExecuteProposalModalOpen && ( + setIsExecuteProposalModalOpen(false)} + /> + )} + )} - {isVotingModalOpen && ( - setIsVotingModalOpen(false)} /> - )} - {isExecuteProposalModalOpen && ( - setIsExecuteProposalModalOpen(false)} - /> - )} -
+ ); }; diff --git a/dapp/src/constants/demoConfigData.js b/dapp/src/constants/demoConfigData.js index 4e0d0deb..7132961a 100644 --- a/dapp/src/constants/demoConfigData.js +++ b/dapp/src/constants/demoConfigData.js @@ -31,41 +31,6 @@ export const demoConfigData = [ "GCMFQP44AR32S7IRIUKNOEJW5PNWOCLRHLQWSHUCSV4QZOMUXZOVA7Q2", ], }, - // { - // projectName: "salib", - // logoImageLink: "https://raw.githubusercontent.com/SALib/SALib/main/docs/assets/logo.png", - // description: "Python implementations of commonly used sensitivity analysis methods. Useful in systems modeling to calculate the effects of model inputs or exogenous factors on outputs of interest.", - // organizationName: " SALib", - // officials: { - // websiteLink: "http://salib.github.io/SALib/", - // githubLink: "https://github.com/SALib/SALib", - // }, - // socialLinks: { - // twitter: "https://twitter.com/", - // instagram: "https://instagram.com/", - // }, - // authorGithubNames: ["ConnectedSystems","tupui"], - // maintainersAddresses: [ - // "GCUDW6ZF5SCGCMS3QUTELZ6LSAH6IVVXNRPRLAUNJ2XYLCA7KH7ZCVQS", - // "GDQP2KPQGKIHYJGXNUIYOMHARUARCA7DJT5FO2FFOOKY3B2WSQHG4W37" - // ], - // }, - // { - // projectName: "fff", - // logoImageLink: "https://github.com/0xExp-po/soroban-versioning/blob/main/website/static/img/logo.svg", - // description: "Bringing Git hashes onto Stellar’s blockchain", - // organizationName: "Consulting Manao GmbH", - // officials: { - // websiteLink: "https://tansu.dev", - // githubLink: "https://github.com/0xExp-po/soroban-versioning", - // }, - // socialLinks: { - // }, - // authorGithubNames: ["0xExp-po"], - // maintainersAddresses: [ - // "GALDGLKIXR52A5EZTIRZ2IWEZ5PWN55IY2TLA7ORFPG2VVSFVV5PYNOB", - // ], - // }, ]; export function getDemoConfigData() { diff --git a/dapp/src/layouts/Layout.astro b/dapp/src/layouts/Layout.astro index 59ad4f52..c74226ee 100644 --- a/dapp/src/layouts/Layout.astro +++ b/dapp/src/layouts/Layout.astro @@ -36,22 +36,20 @@ const { title } = Astro.props; image: "https://testnet.tansu.dev/logo.svg", }, }} - twitter={{ - creator: "@PamphileRoy", - card: "summary_large_image", - }} extend={{ // extending the default link tags link: [{ rel: "icon", href: "/logo.svg" }], // extending the default meta tags meta: [ + { name: "x:creator", content: "@PamphileRoy" }, + { name: "x:card", content: "summary_large_image" }, { - name: "twitter:image", + name: "x:image", content: "https://testnet.tansu.dev/logo.svg", }, - { name: "twitter:title", content: "Tansu" }, + { name: "x:title", content: "Tansu" }, { - name: "twitter:description", + name: "x:description", content: "Bringing open source software development onto the Stellar blockchain", }, diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts index 28765386..21150ff6 100644 --- a/website/docusaurus.config.ts +++ b/website/docusaurus.config.ts @@ -57,6 +57,20 @@ const config: Config = { themeConfig: { // Replace with your project's social card image: 'https://tansu.dev/img/logo.png', + metadata: [ + { name: "x:creator", content: "@PamphileRoy" }, + { name: "x:card", content: "summary_large_image" }, + { + name: "x:image", + content: "https://testnet.tansu.dev/logo.svg", + }, + { name: "x:title", content: "Tansu" }, + { + name: "x:description", + content: + "Bringing open source software development onto the Stellar blockchain", + }, + ], navbar: { title: 'Tansu', logo: {