diff --git a/components/utils/img.ts b/components/utils/img.ts index 94baa27..0fe3b7a 100644 --- a/components/utils/img.ts +++ b/components/utils/img.ts @@ -40,3 +40,5 @@ export const EPICS_DAO_PRODUCT_IMG = '/img/daos/EpicsDAO.jpg' export const ICON_OPOS_COMPRESSED_COIL = '/img/icon/opos/CompressedCoil.png' export const ICON_OPOS_SAGA_PHONE = '/img/icon/opos/SagaPhone.png' + +export const SOLANA_BLINKS_IMG = '/img/icon/solana/SolanaBlinks.webp' diff --git a/constants/links.ts b/constants/links.ts index 04e5912..ad93c88 100644 --- a/constants/links.ts +++ b/constants/links.ts @@ -34,6 +34,7 @@ export const EAST_VENTURES_LINK = 'https://east.vc/' export const MIRAISE_LINK = 'https://miraise.vc/' export const PRISMA_LINK = 'https://prisma.io/' export const EXPO_LINK = 'https://expo.dev/' +export const SOLANA_ACTIONS_WEB_LINK = 'https://solana.com/solutions/actions' export const SOLANA_VALIDATOR_LINK = 'https://docs.solanalabs.com/operations/requirements' diff --git a/islands/layouts/default/DefaultFooter.tsx b/islands/layouts/default/DefaultFooter.tsx index 5e2ee0e..ec4b7c6 100644 --- a/islands/layouts/default/DefaultFooter.tsx +++ b/islands/layouts/default/DefaultFooter.tsx @@ -20,6 +20,7 @@ import { import { useTranslation } from '@/hooks/i18n/useTranslation.ts' import Link from '@/components/utils/Link.tsx' import { usePathname } from '@/hooks/i18n/usePathname.ts' +import { ERPC_WEB_LINK } from '@/constants/links.ts' export default function DefaultFooter() { const t = useTranslation() @@ -62,14 +63,15 @@ export default function DefaultFooter() {
- {t('common.aiChat')} + ERPC - Enhanced Solana RPC
diff --git a/islands/layouts/default/DefaultModalNav.tsx b/islands/layouts/default/DefaultModalNav.tsx index 312c79f..e7e4c1b 100644 --- a/islands/layouts/default/DefaultModalNav.tsx +++ b/islands/layouts/default/DefaultModalNav.tsx @@ -1,4 +1,3 @@ -import { appInfo } from '@/config.ts' import LogoHorizontalLink from '@/components/common/LogoHorizontalLink.tsx' import { cn } from '@/lib/utils.ts' import { useSignal } from '@preact/signals' @@ -19,7 +18,6 @@ import { import { usePathname } from '@/hooks/i18n/usePathname.ts' import Link from '@/components/utils/Link.tsx' import { useTranslation } from '@/hooks/i18n/useTranslation.ts' -import Button from '@/components/ui/Button.tsx' export default function DefaultModalNav() { const t = useTranslation() diff --git a/islands/layouts/default/defaultNavs.ts b/islands/layouts/default/defaultNavs.ts index a743472..80c416f 100644 --- a/islands/layouts/default/defaultNavs.ts +++ b/islands/layouts/default/defaultNavs.ts @@ -1,11 +1,16 @@ export enum DEFAULT_PATHS { home = '/', + blinks = '/blinks', doc = '/doc/general/getting-started', news = '/news', privacy = '/legal/privacy-policy', } export const defaultHeaderNav = [ + { + path: DEFAULT_PATHS.blinks, + label: 'common.nav.blinks', + }, { path: DEFAULT_PATHS.doc, label: 'common.nav.doc', @@ -17,6 +22,10 @@ export const defaultHeaderNav = [ ] export const defaultFooterNav = [ + { + path: DEFAULT_PATHS.blinks, + label: 'common.nav.blinks', + }, { path: DEFAULT_PATHS.doc, label: 'common.nav.doc', diff --git a/locales/en/blinks.json b/locales/en/blinks.json new file mode 100644 index 0000000..b0b13fa --- /dev/null +++ b/locales/en/blinks.json @@ -0,0 +1,4 @@ +{ + "title": "Solana Blinks", + "description": "Solana の Blockchain Links (通称: Blinks) を使えば、X や Discord など、インターネット上のあらゆる場所でトランザクションを行うことができます。Blinks はウェブサイトやアプリにも簡単に統合可能です。" +} diff --git a/locales/en/common.json b/locales/en/common.json index 1897f50..857af40 100644 --- a/locales/en/common.json +++ b/locales/en/common.json @@ -18,6 +18,7 @@ "balance": "Balance", "updated": "Updated!", "priceDataFromCoingecko": "※ Price data is retrieved from CoinGecko", + "tryBlinks": "Try Solana Blinks", "CTARow": { "title": "Join Our Discord Community", "body": "Stay informed with the latest updates, news, and exclusive insights by joining our official Discord server.", @@ -99,6 +100,7 @@ "subtitle2": "This is a demo of the RC version" }, "nav": { + "blinks": "Solana Blinks", "doc": "Doc", "news": "News", "privacy": "Privacy Policy" diff --git a/locales/ja/blinks.json b/locales/ja/blinks.json new file mode 100644 index 0000000..b3fedd5 --- /dev/null +++ b/locales/ja/blinks.json @@ -0,0 +1,4 @@ +{ + "title": "Solana Blinks", + "description": "With Solana’s Blockchain Links (commonly known as Blinks), you can perform transactions anywhere on the internet, including platforms like X and Discord. Blinks can be easily integrated into websites and apps." +} diff --git a/locales/ja/common.json b/locales/ja/common.json index 17ee83d..cd90248 100644 --- a/locales/ja/common.json +++ b/locales/ja/common.json @@ -17,6 +17,7 @@ "connectYourWallet": "ウォレットを接続してください", "balance": "残高", "updated": "更新完了!", + "tryBlinks": "Solana Blinks を試す", "priceDataFromCoingecko": "※ 価格データは CoinGecko より取得", "CTARow": { "title": "Discord コミュニティに参加しましょう", @@ -99,6 +100,7 @@ "subtitle2": "こちらは RC バージョンのデモです" }, "nav": { + "blinks": "Solana Blinks", "doc": "ドキュメント", "news": "ニュース", "privacy": "プライバシーポリシー" diff --git a/routes/[locale]/(default)/(_rows)/HomeHeroRow.tsx b/routes/[locale]/(default)/(_rows)/HomeHeroRow.tsx index ab18160..7f99bab 100644 --- a/routes/[locale]/(default)/(_rows)/HomeHeroRow.tsx +++ b/routes/[locale]/(default)/(_rows)/HomeHeroRow.tsx @@ -37,6 +37,7 @@ import { SOLANA_LOGO_HORIZONTAL, SOLANA_LOGO_INVERT_HORIZONTAL, } from '@/components/utils/img.ts' +import { DEFAULT_PATHS } from '@/islands/layouts/default/defaultNavs.ts' const logos = [ { @@ -132,8 +133,8 @@ export default function HomeHeroRow( {t('common.HomeHeroRow.subtitle2')}

- - + + +
+
+ Background +
+ +
+
+

+ {t('blinks.title')} +

+

+ {t('blinks.description')} +

+
+
+
+ Solana Actions & Blinks +
+
+
+ + ) +} diff --git a/routes/[locale]/(default)/blinks/index.tsx b/routes/[locale]/(default)/blinks/index.tsx new file mode 100644 index 0000000..81388e5 --- /dev/null +++ b/routes/[locale]/(default)/blinks/index.tsx @@ -0,0 +1,27 @@ +import { define } from '@/utils/state.ts' +import { asset } from 'fresh/runtime' +import { page } from 'fresh' +import CTARow from '@/routes/[locale]/(default)/(_rows)/CTARow.tsx' +import ProductsSlideRow from '@/islands/rows/products/ProductsSlideRow.tsx' +import NewsIndexRow from '@/islands/rows/news/NewsIndexRow.tsx' +import BlinksHeroRow from '@/routes/[locale]/(default)/blinks/(_rows)/BlinksHeroRow.tsx' + +export const handler = define.handlers({ + GET(ctx) { + ctx.state.title = 'blinks.title' + ctx.state.description = 'blinks.description' + ctx.state.ogImage = new URL(asset('/ogp.jpg'), ctx.url).href + return page() + }, +}) + +export default define.page(function BlinksPage(props) { + return ( + <> + + + + + + ) +}) diff --git a/static/img/icon/solana/SolanaBlinks.webp b/static/img/icon/solana/SolanaBlinks.webp new file mode 100644 index 0000000..af7bc39 Binary files /dev/null and b/static/img/icon/solana/SolanaBlinks.webp differ