From c91e90728ae2b664366b007be5777eb0aabbd62b Mon Sep 17 00:00:00 2001 From: gnomadic Date: Wed, 30 Apr 2025 09:35:45 -0400 Subject: [PATCH 1/2] adding sunny feature set --- config/features.ts | 33 ++++++++++++++++++++++++-- public/sunny-logo.png | Bin 0 -> 11445 bytes src/components/common/images/Logo.tsx | 4 ++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 public/sunny-logo.png diff --git a/config/features.ts b/config/features.ts index e129bb5..9cc5186 100644 --- a/config/features.ts +++ b/config/features.ts @@ -1,5 +1,6 @@ import colors from 'tailwindcss/colors'; import { + base, mainnet, optimism, optimismSepolia, @@ -8,7 +9,7 @@ import { zksyncSepoliaTestnet, } from 'wagmi/chains'; -type WHITELABEL_ENV = 'OPTIMISM' | 'ZK_SYNC'; +type WHITELABEL_ENV = 'OPTIMISM' | 'ZK_SYNC' | 'SUNNY'; const _WHITELABEL_ENV = process.env.NEXT_PUBLIC_WHITELABEL_ENV; @@ -16,7 +17,13 @@ if (!_WHITELABEL_ENV) { throw new Error('NEXT_PUBLIC_WHITELABEL_ENV is not set'); } -if (!(_WHITELABEL_ENV === 'OPTIMISM' || _WHITELABEL_ENV === 'ZK_SYNC')) { +if ( + !( + _WHITELABEL_ENV === 'OPTIMISM' || + _WHITELABEL_ENV === 'ZK_SYNC' || + _WHITELABEL_ENV === 'SUNNY' + ) +) { throw new Error('NEXT_PUBLIC_WHITELABEL_ENV is not set to a valid value'); } @@ -75,6 +82,23 @@ const featureMatrix: Record = { CONFIRMATION_SECOND_BUTTON_LINK: '', CLAIM_FEE: true, }, + SUNNY: { + APP_NAME: 'The Sunny Awards', + BG_IMAGE: { + src: '', + }, + DELEGATION_REQUIRED: false, + DELEGATION_ENABLED: false, + DELEGATES_URL: 'https://vote.zknation.io/dao/delegates', + CONFIRMATION_CHECKMARK_BG_COLOR: 'black', + INTRO_TEXT: + 'Celebrate onchain Summer 2024 and explore the grants from the Sunny Awards. For grantees, this claiming tool offers a self-serve interface to claim your grant.', + ONLY_SHOW_CLAIMABLE: false, + CONFIRMATION_SUBHEADER: '', + CONFIRMATION_SECOND_BUTTON_TEXT: '', + CONFIRMATION_SECOND_BUTTON_LINK: '', + CLAIM_FEE: true, + }, }; export const FEATURES = featureMatrix[_WHITELABEL_ENV]; @@ -97,6 +121,11 @@ export const getChainConfig = () => { appName: 'ZKsync Claim Tool', chains: [mainnet, zksync, zksyncSepoliaTestnet], }; + case 'SUNNY': + return { + appName: 'Sunny Claim Tool', + chains: [mainnet, optimism, optimismSepolia, sepolia], + }; } }; diff --git a/public/sunny-logo.png b/public/sunny-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..889587f4b2fae78e02290c9406dd24e178f0ac53 GIT binary patch literal 11445 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 Cw;RO( literal 0 HcmV?d00001 diff --git a/src/components/common/images/Logo.tsx b/src/components/common/images/Logo.tsx index 78559c5..ca93df0 100644 --- a/src/components/common/images/Logo.tsx +++ b/src/components/common/images/Logo.tsx @@ -1,13 +1,17 @@ import Image from 'next/image'; import { WHITELABEL_ENV } from '../../../../config/features'; import OpLogo from '../../../../public/op-logo.svg'; +import SunnyLogo from '../../../../public/sunny-logo.png'; import ZkSyncLogo from '../../../../public/zksync_logo_dark.svg'; + const Logo = () => { switch (WHITELABEL_ENV) { case 'OPTIMISM': return OP Logo; case 'ZK_SYNC': return ZKSync Logo; + case 'SUNNY': + return Sunny Logo; default: throw new Error('Invalid WHITE_LABEL_ENV'); } From 4fb440c103ad66e552b3352a8f294de592d4d5f8 Mon Sep 17 00:00:00 2001 From: gnomadic Date: Wed, 30 Apr 2025 09:43:07 -0400 Subject: [PATCH 2/2] add whitelabeltheme --- config/features.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config/features.ts b/config/features.ts index 9cc5186..a92cd89 100644 --- a/config/features.ts +++ b/config/features.ts @@ -149,5 +149,11 @@ export const getWhitelabelThemeColors = (): WhitelabelThemeColors => { primaryAction: colors.blue[500], primaryActionButtonBg: colors.blue[900], }; + case 'SUNNY': + return { + bgClaimcardHeader: colors.blue[200], + primaryAction: colors.blue[500], + primaryActionButtonBg: colors.blue[900], + }; } };