From 74fcbaeba209533222c3a87dd2d9f786f6f5a136 Mon Sep 17 00:00:00 2001 From: dave | d1onys1us <13951458+d1onys1us@users.noreply.github.com> Date: Tue, 6 Jun 2023 01:12:17 +0200 Subject: [PATCH] feat(website): add updated ecosystem page (#13887) --- .github/ISSUE_TEMPLATE/add_project.yml | 29 +++++++++++ .../components/AddEthereumChainButton.tsx | 47 ------------------ packages/website/components/EcosystemCard.tsx | 20 ++++++++ .../website/components/EcosystemSection.tsx | 46 +++++++++++++++++ packages/website/pages/_meta.json | 7 +++ packages/website/pages/ecosystem.mdx | 7 +++ .../public/images/ecosystem/loopring.svg | 10 ++++ .../public/images/ecosystem/orbiter.jpg | Bin 0 -> 23051 bytes 8 files changed, 119 insertions(+), 47 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/add_project.yml delete mode 100644 packages/website/components/AddEthereumChainButton.tsx create mode 100644 packages/website/components/EcosystemCard.tsx create mode 100644 packages/website/components/EcosystemSection.tsx create mode 100644 packages/website/pages/ecosystem.mdx create mode 100644 packages/website/public/images/ecosystem/loopring.svg create mode 100644 packages/website/public/images/ecosystem/orbiter.jpg diff --git a/.github/ISSUE_TEMPLATE/add_project.yml b/.github/ISSUE_TEMPLATE/add_project.yml new file mode 100644 index 0000000000..7fa1b356f7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/add_project.yml @@ -0,0 +1,29 @@ +name: Add a project to Taiko's ecosystem 🌐 +description: Add a project to Taiko's ecosystem +labels: ["category.enhancement", "status.needs-triage"] +assignees: + - d1onys1us, 2manslkh +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to add your project. You can see existing examples on Taiko's ecosystem page [here](https://taiko.xyz/ecosystem)! + - type: input + id: title + attributes: + label: Title of your project + validations: + required: true + - type: input + id: link + attributes: + label: Link to your project + validations: + required: true + - type: textarea + id: logo + attributes: + label: Upload a quality logo to your project + description: 512x512 or 1:1 ratio is preferred. If no image is provided we will use a placeholder image. + validations: + required: false diff --git a/packages/website/components/AddEthereumChainButton.tsx b/packages/website/components/AddEthereumChainButton.tsx deleted file mode 100644 index 6cadb08c5d..0000000000 --- a/packages/website/components/AddEthereumChainButton.tsx +++ /dev/null @@ -1,47 +0,0 @@ -type Props = { - buttonText: string; -}; - -async function addEthereumChain() { - interface AddEthereumChainParameter { - chainId: string; // A 0x-prefixed hexadecimal string - chainName: string; - nativeCurrency: { - name: string; - symbol: string; // 2-6 characters long - decimals: 18; - }; - rpcUrls: string[]; - blockExplorerUrls?: string[]; - iconUrls?: string[]; // Currently ignored. - } - - const taikoParams: AddEthereumChainParameter = { - chainId: "0x28C5C", - chainName: "Taiko (Alpha-2 Testnet)", - nativeCurrency: { - name: "ETH", - symbol: "eth", - decimals: 18, - }, - rpcUrls: ["https://rpc.a2.taiko.xyz"], - blockExplorerUrls: ["https://explorer.a2.taiko.xyz/"], - iconUrls: [], - }; - - await (window as any).ethereum.request({ - method: "wallet_addEthereumChain", - params: [taikoParams], - }); -} - -export default function AddEthereumChainButton(props: Props) { - return ( -
addEthereumChain()} - className="hover:cursor-pointer text-neutral-900 bg-neutral-100 hover:bg-neutral-200 border-solid border-neutral-200 focus:ring-4 focus:outline-none focus:ring-neutral-100 font-medium rounded-lg text-sm px-3 py-2 text-center inline-flex items-center dark:focus:ring-neutral-600 dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700" - > - {props.buttonText} -
- ); -} diff --git a/packages/website/components/EcosystemCard.tsx b/packages/website/components/EcosystemCard.tsx new file mode 100644 index 0000000000..c44552497f --- /dev/null +++ b/packages/website/components/EcosystemCard.tsx @@ -0,0 +1,20 @@ +function EcosystemCard({ icon, name, link, description }) { + return ( + + {`${name}-logo`} +

+ {name} +

+

{link}

+

{description}

+
+ ); +} + +export default EcosystemCard; diff --git a/packages/website/components/EcosystemSection.tsx b/packages/website/components/EcosystemSection.tsx new file mode 100644 index 0000000000..cdc53736d7 --- /dev/null +++ b/packages/website/components/EcosystemSection.tsx @@ -0,0 +1,46 @@ +import EcosystemCard from "./EcosystemCard"; + +export default function EcosystemSection() { + const ecosystemData = [ + { + icon: "/images/ecosystem/taiko.svg", + name: "Bridge", + link: "https://bridge.test.taiko.xyz", + description: "Bridge is a dapp that lets you bridge tokens with Taiko.", + }, + { + icon: "/images/ecosystem/taiko.svg", + name: "Swap", + link: "https://swap.test.taiko.xyz", + description: "Swap is a dapp that lets you swap tokens on Taiko.", + }, + { + icon: "/images/ecosystem/orbiter.jpg", + name: "Orbiter", + link: "https://orbiter.finance", + description: + "A decentralized cross-rollup Layer 2 bridge with a contract only on the destination side.", + }, + { + icon: "/images/ecosystem/loopring.svg", + name: "Loopring Wallet", + link: "https://loopring.io/#/wallet", + description: + "Loopring is your mobile gateway to Ethereum L2, enabling you to easily trade, swap, collect, stake, and invest without the costly gas fees.", + }, + ]; + + return ( +
+ {ecosystemData.map((_) => ( + + ))} +
+ ); +} diff --git a/packages/website/pages/_meta.json b/packages/website/pages/_meta.json index f5371de10a..00cc62f269 100644 --- a/packages/website/pages/_meta.json +++ b/packages/website/pages/_meta.json @@ -17,6 +17,13 @@ "href": "https://mirror.xyz/labs.taiko.eth", "newWindow": true }, + "ecosystem": { + "title": "Ecosystem", + "type": "page", + "theme": { + "layout": "full" + } + }, "forum": { "title": "Forum", "type": "page", diff --git a/packages/website/pages/ecosystem.mdx b/packages/website/pages/ecosystem.mdx new file mode 100644 index 0000000000..1175234868 --- /dev/null +++ b/packages/website/pages/ecosystem.mdx @@ -0,0 +1,7 @@ +import EcosystemSection from "components/EcosystemSection"; + +{

Ecosystem

} + +{

Add your project

} + + diff --git a/packages/website/public/images/ecosystem/loopring.svg b/packages/website/public/images/ecosystem/loopring.svg new file mode 100644 index 0000000000..dba77fc3a1 --- /dev/null +++ b/packages/website/public/images/ecosystem/loopring.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/packages/website/public/images/ecosystem/orbiter.jpg b/packages/website/public/images/ecosystem/orbiter.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3dbf137cb4275b3fb8f326274fb7c013480498ce GIT binary patch literal 23051 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 literal 0 HcmV?d00001