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: {