From 53f9103e9031062b29f051a6f80be2804a5f75b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20=C4=86wirko?= Date: Sun, 17 Mar 2024 16:59:51 +0100 Subject: [PATCH 01/22] rebuild UI (WIP) --- CHANGELOG.md | 3 + .../fungible-tokens/issue/page.tsx | 7 + .../fungible-tokens/special-roles/page.tsx | 7 + .../general/claim-developer-rewards/page.tsx | 7 + app/(operations)/general/send-egld/page.tsx | 7 + app/(operations)/layout.tsx | 44 +++ app/(operations)/meta-tokens/issue/page.tsx | 7 + .../meta-tokens/special-roles/page.tsx | 7 + .../non-fungible-tokens/issue/page.tsx | 7 + .../special-roles/page.tsx | 7 + .../semi-fungible-tokens/issue/page.tsx | 7 + .../special-roles/page.tsx | 7 + .../utilities/data-converters/page.tsx | 7 + .../utilities/decode-transaction/page.tsx | 7 + app/{ => (pages)}/about/page.tsx | 0 app/{ => (pages)}/gpt-privacy/page.tsx | 0 app/(pages)/layout.tsx | 46 +++ app/{ => (pages)}/page.tsx | 0 app/layout.tsx | 8 +- components/{main-footer.tsx => footer.tsx} | 4 +- components/{main-header.tsx => header.tsx} | 2 +- components/home-cards.tsx | 5 +- components/operation-footer.tsx | 52 +++ components/operation-header.tsx | 48 +++ package-lock.json | 339 ++++++++++-------- package.json | 32 +- public/logo.svg | 22 +- 27 files changed, 507 insertions(+), 182 deletions(-) create mode 100644 app/(operations)/fungible-tokens/issue/page.tsx create mode 100644 app/(operations)/fungible-tokens/special-roles/page.tsx create mode 100644 app/(operations)/general/claim-developer-rewards/page.tsx create mode 100644 app/(operations)/general/send-egld/page.tsx create mode 100644 app/(operations)/layout.tsx create mode 100644 app/(operations)/meta-tokens/issue/page.tsx create mode 100644 app/(operations)/meta-tokens/special-roles/page.tsx create mode 100644 app/(operations)/non-fungible-tokens/issue/page.tsx create mode 100644 app/(operations)/non-fungible-tokens/special-roles/page.tsx create mode 100644 app/(operations)/semi-fungible-tokens/issue/page.tsx create mode 100644 app/(operations)/semi-fungible-tokens/special-roles/page.tsx create mode 100644 app/(operations)/utilities/data-converters/page.tsx create mode 100644 app/(operations)/utilities/decode-transaction/page.tsx rename app/{ => (pages)}/about/page.tsx (100%) rename app/{ => (pages)}/gpt-privacy/page.tsx (100%) create mode 100644 app/(pages)/layout.tsx rename app/{ => (pages)}/page.tsx (100%) rename components/{main-footer.tsx => footer.tsx} (95%) rename components/{main-header.tsx => header.tsx} (98%) create mode 100644 components/operation-footer.tsx create mode 100644 components/operation-header.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index fcbb938..42f89e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +### [0.14.0](https://github.com/xdevguild/buildo.dev/releases/tag/v0.14.0) (2024-...) +- rebuild the UI. Each operation has separate page now + ### [0.13.1](https://github.com/xdevguild/buildo.dev/releases/tag/v0.13.1) (2024-02-28) - update useElven and implement required changes in code diff --git a/app/(operations)/fungible-tokens/issue/page.tsx b/app/(operations)/fungible-tokens/issue/page.tsx new file mode 100644 index 0000000..85873b3 --- /dev/null +++ b/app/(operations)/fungible-tokens/issue/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const Issue: NextPage = () => { + return
Issue fungible (WIP)
; +}; + +export default Issue; diff --git a/app/(operations)/fungible-tokens/special-roles/page.tsx b/app/(operations)/fungible-tokens/special-roles/page.tsx new file mode 100644 index 0000000..1285f05 --- /dev/null +++ b/app/(operations)/fungible-tokens/special-roles/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const SpecialRoles: NextPage = () => { + return
Special roles (WIP)
; +}; + +export default SpecialRoles; diff --git a/app/(operations)/general/claim-developer-rewards/page.tsx b/app/(operations)/general/claim-developer-rewards/page.tsx new file mode 100644 index 0000000..e23003b --- /dev/null +++ b/app/(operations)/general/claim-developer-rewards/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const ClainDeveloperRewards: NextPage = () => { + return
Clain Developer Rewards (WIP)
; +}; + +export default ClainDeveloperRewards; diff --git a/app/(operations)/general/send-egld/page.tsx b/app/(operations)/general/send-egld/page.tsx new file mode 100644 index 0000000..92d625f --- /dev/null +++ b/app/(operations)/general/send-egld/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const SendEgld: NextPage = () => { + return
Send EGLD (WIP)
; +}; + +export default SendEgld; diff --git a/app/(operations)/layout.tsx b/app/(operations)/layout.tsx new file mode 100644 index 0000000..42ef00e --- /dev/null +++ b/app/(operations)/layout.tsx @@ -0,0 +1,44 @@ +import { Metadata } from 'next'; +import { OperationHeader } from '@/components/operation-header'; +import { OperationFooter } from '@/components/operation-footer'; + +// TODO: manage meta for all pages +const dappHostname = process.env.NEXT_PUBLIC_DAPP_HOST; +const title = 'Inscriptions on MultiversX | Buildo.dev'; +const description = + 'Experimental Inscriptions. Save custom immutable data cheaper. You can then use it off-chain or for NFTs. (The structure of the data may change!'; +const globalImage = `${dappHostname}/og-image.png`; + +export const metadata: Metadata = { + title, + description, + openGraph: { + title, + images: [globalImage], + description, + type: 'website', + url: '/inscriptions/create', + }, + twitter: { + title, + description, + images: [globalImage], + card: 'summary_large_image', + }, +}; + +export default function OperationsLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + +
+
{children}
+
+ + + ); +} diff --git a/app/(operations)/meta-tokens/issue/page.tsx b/app/(operations)/meta-tokens/issue/page.tsx new file mode 100644 index 0000000..776ca92 --- /dev/null +++ b/app/(operations)/meta-tokens/issue/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const Issue: NextPage = () => { + return
Issue meta tokens (WIP)
; +}; + +export default Issue; diff --git a/app/(operations)/meta-tokens/special-roles/page.tsx b/app/(operations)/meta-tokens/special-roles/page.tsx new file mode 100644 index 0000000..1285f05 --- /dev/null +++ b/app/(operations)/meta-tokens/special-roles/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const SpecialRoles: NextPage = () => { + return
Special roles (WIP)
; +}; + +export default SpecialRoles; diff --git a/app/(operations)/non-fungible-tokens/issue/page.tsx b/app/(operations)/non-fungible-tokens/issue/page.tsx new file mode 100644 index 0000000..ee13ffe --- /dev/null +++ b/app/(operations)/non-fungible-tokens/issue/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const Issue: NextPage = () => { + return
Issue non-fungible tokens (WIP)
; +}; + +export default Issue; diff --git a/app/(operations)/non-fungible-tokens/special-roles/page.tsx b/app/(operations)/non-fungible-tokens/special-roles/page.tsx new file mode 100644 index 0000000..1285f05 --- /dev/null +++ b/app/(operations)/non-fungible-tokens/special-roles/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const SpecialRoles: NextPage = () => { + return
Special roles (WIP)
; +}; + +export default SpecialRoles; diff --git a/app/(operations)/semi-fungible-tokens/issue/page.tsx b/app/(operations)/semi-fungible-tokens/issue/page.tsx new file mode 100644 index 0000000..4ebd378 --- /dev/null +++ b/app/(operations)/semi-fungible-tokens/issue/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const Issue: NextPage = () => { + return
Issue semi-fungible tokens (WIP)
; +}; + +export default Issue; diff --git a/app/(operations)/semi-fungible-tokens/special-roles/page.tsx b/app/(operations)/semi-fungible-tokens/special-roles/page.tsx new file mode 100644 index 0000000..1285f05 --- /dev/null +++ b/app/(operations)/semi-fungible-tokens/special-roles/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const SpecialRoles: NextPage = () => { + return
Special roles (WIP)
; +}; + +export default SpecialRoles; diff --git a/app/(operations)/utilities/data-converters/page.tsx b/app/(operations)/utilities/data-converters/page.tsx new file mode 100644 index 0000000..048490f --- /dev/null +++ b/app/(operations)/utilities/data-converters/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const DataConverters: NextPage = () => { + return
Data converters (WIP)
; +}; + +export default DataConverters; diff --git a/app/(operations)/utilities/decode-transaction/page.tsx b/app/(operations)/utilities/decode-transaction/page.tsx new file mode 100644 index 0000000..d28fbc0 --- /dev/null +++ b/app/(operations)/utilities/decode-transaction/page.tsx @@ -0,0 +1,7 @@ +import type { NextPage } from 'next'; + +const DecodeTransaction: NextPage = () => { + return
Decode transaction (WIP)
; +}; + +export default DecodeTransaction; diff --git a/app/about/page.tsx b/app/(pages)/about/page.tsx similarity index 100% rename from app/about/page.tsx rename to app/(pages)/about/page.tsx diff --git a/app/gpt-privacy/page.tsx b/app/(pages)/gpt-privacy/page.tsx similarity index 100% rename from app/gpt-privacy/page.tsx rename to app/(pages)/gpt-privacy/page.tsx diff --git a/app/(pages)/layout.tsx b/app/(pages)/layout.tsx new file mode 100644 index 0000000..673f5bd --- /dev/null +++ b/app/(pages)/layout.tsx @@ -0,0 +1,46 @@ +import type { Metadata } from 'next'; +import { Header } from '@/components/header'; +import { Footer } from '@/components/footer'; + +const dappHostname = process.env.NEXT_PUBLIC_DAPP_HOST; +const globalTitle = 'Buildo is your companion through the MultiversX'; +const globalDescription = + 'Buildo.dev is a MultiversX app that helps with blockchain interactions, like issuing tokens and querying smart contracts.'; +const globalImage = `${dappHostname}/og-image.png`; + +// TODO: cleanup all the metadata for all pages +export const metadata: Metadata = { + metadataBase: new URL(dappHostname!), + title: globalTitle, + description: globalDescription, + authors: { name: 'Buildo.dev', url: 'https://www.buildo.dev' }, + openGraph: { + title: globalTitle, + images: [globalImage], + description: globalDescription, + type: 'website', + url: dappHostname, + }, + twitter: { + title: globalTitle, + description: globalDescription, + images: [globalImage], + card: 'summary_large_image', + }, +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> +
+
+ {children} +
+