From 4a34d7010b3b8b7f05d157a9d30e0bb8cc1b5ed0 Mon Sep 17 00:00:00 2001 From: luca Date: Wed, 24 Jan 2024 22:06:19 +0800 Subject: [PATCH 01/16] feat: create authz example layout --- .../components/common/Footer.tsx | 166 ++++++++++++++++++ .../components/common/Header.tsx | 63 +++++++ .../components/common/Layout.tsx | 19 ++ .../components/common/index.ts | 1 + examples/telescope-authz/components/index.tsx | 1 + examples/telescope-authz/configs/defaults.ts | 19 ++ examples/telescope-authz/configs/features.ts | 51 ++++++ examples/telescope-authz/configs/index.ts | 2 + examples/telescope-authz/package.json | 3 +- examples/telescope-authz/pages/_app.tsx | 84 +++++++++ examples/telescope-authz/pages/index.tsx | 10 ++ .../telescope-authz/public/image/favicon.ico | Bin 0 -> 14037 bytes examples/telescope-authz/tsconfig.json | 29 +-- 13 files changed, 434 insertions(+), 14 deletions(-) create mode 100644 examples/telescope-authz/components/common/Footer.tsx create mode 100644 examples/telescope-authz/components/common/Header.tsx create mode 100644 examples/telescope-authz/components/common/Layout.tsx create mode 100644 examples/telescope-authz/components/common/index.ts create mode 100644 examples/telescope-authz/components/index.tsx create mode 100644 examples/telescope-authz/configs/defaults.ts create mode 100644 examples/telescope-authz/configs/features.ts create mode 100644 examples/telescope-authz/configs/index.ts create mode 100644 examples/telescope-authz/pages/_app.tsx create mode 100644 examples/telescope-authz/pages/index.tsx create mode 100644 examples/telescope-authz/public/image/favicon.ico diff --git a/examples/telescope-authz/components/common/Footer.tsx b/examples/telescope-authz/components/common/Footer.tsx new file mode 100644 index 000000000..6dbfd8dcd --- /dev/null +++ b/examples/telescope-authz/components/common/Footer.tsx @@ -0,0 +1,166 @@ +import { + Box, + Link, + Text, + Icon, + Stack, + Divider, + useColorModeValue, +} from '@interchain-ui/react'; +import { dependencies, products, Project } from '@/configs'; + +function Product({ name, desc, link }: Project) { + return ( + + + + {name} → + + + {desc} + + + + ); +} + +function Dependency({ name, desc, link }: Project) { + return ( + + + + + + + + + {name} + + + {desc} + + + + + ); +} + +export function Footer() { + return ( + <> + + {products.map((product) => ( + + ))} + + + {dependencies.map((dependency) => ( + + ))} + + + + + + Built with + + Cosmology + + + + ); +} diff --git a/examples/telescope-authz/components/common/Header.tsx b/examples/telescope-authz/components/common/Header.tsx new file mode 100644 index 000000000..b573280b2 --- /dev/null +++ b/examples/telescope-authz/components/common/Header.tsx @@ -0,0 +1,63 @@ +import { + Box, + Button, + Icon, + Text, + useTheme, + useColorModeValue, +} from '@interchain-ui/react'; + +const stacks = ['CosmosKit', 'Next.js']; + +export function Header() { + const { theme, setTheme } = useTheme(); + + const toggleColorMode = () => { + setTheme(theme === 'light' ? 'dark' : 'light'); + }; + + return ( + <> + + + + + + + Create Cosmos App + + + + Welcome to  + + + {stacks.join(' + ')} + + + + + ); +} diff --git a/examples/telescope-authz/components/common/Layout.tsx b/examples/telescope-authz/components/common/Layout.tsx new file mode 100644 index 000000000..ff3365d5e --- /dev/null +++ b/examples/telescope-authz/components/common/Layout.tsx @@ -0,0 +1,19 @@ +import Head from 'next/head'; +import { Container } from '@interchain-ui/react'; +import { Header } from './Header'; +import { Footer } from './Footer'; + +export function Layout({ children }: { children: React.ReactNode }) { + return ( + + + Create Cosmos App + + + +
+ {children} +