@orderly.network/affiliate 2.8.10-alpha.0 → 2.8.11-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +7 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -12
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/pages/dashboard/index.tsx","../src/pages/dashboard/page.tsx","../src/pages/dashboard/tab/tab.ui.tsx","../src/components/affiliateIcon.tsx","../src/components/traderIcon.tsx","../src/provider/context.ts","../src/provider/provider.tsx","../src/pages/affiliate/page.tsx","../src/pages/affiliate/summary/summary.ui.tsx","../src/components/usdcIcon.tsx","../src/pages/affiliate/summary/summary.script.tsx","../src/pages/affiliate/summary/summary.widget.tsx","../src/pages/affiliate/referralLink/referralLink.ui.tsx","../src/components/autoHideText.tsx","../src/pages/affiliate/referralLink/referralLink.script.tsx","../src/utils/utils.ts","../src/pages/affiliate/referralLink/referralLink.widget.tsx","../src/pages/affiliate/titleStatistic/titleStatistic.ui.tsx","../src/pages/affiliate/titleStatistic/titleStatistic.script.tsx","../src/utils/chartUtils.ts","../src/pages/affiliate/titleStatistic/titleStatistic.widget.tsx","../src/pages/affiliate/referralCodes/referralCodes.ui.tsx","../src/components/editIcon.tsx","../src/components/editCodeBtn.tsx","../src/components/pinButton.tsx","../src/pages/affiliate/referralCodes/referralCodes.script.tsx","../src/pages/affiliate/referralCodes/editCodeModal.tsx","../src/pages/affiliate/referralCodes/editReferralRate.tsx","../src/pages/affiliate/referralCodes/referralCodes.widget.tsx","../src/pages/affiliate/commissionAndReferees/commissionAndReferees.ui.tsx","../src/pages/affiliate/commissionAndReferees/commissionAndReferees.script.tsx","../src/pages/affiliate/commissionAndReferees/commissionAndReferees.widget.tsx","../src/pages/home/page.tsx","../src/pages/home/becomeAffiliate/becomeAffiliate.ui.tsx","../src/pages/home/becomeAffiliate/becomeAffiliate.script.tsx","../src/pages/home/becomeAffiliate/becomeAffiliate.widget.tsx","../src/pages/home/title/title.ui.tsx","../src/pages/home/title/title.widget.tsx","../src/pages/home/subtitle/subtitle.ui.tsx","../src/pages/home/subtitle/subtitle.script.tsx","../src/pages/home/subtitle/subtitle.widget.tsx","../src/pages/home/top/top.ui.tsx","../src/pages/home/top/top.script.tsx","../src/pages/home/top/top.widget.tsx","../src/pages/home/card/card.ui.tsx","../src/pages/home/asATrader/asTrader.ui.tsx","../src/components/arrowRightIcon.tsx","../src/pages/home/asATrader/asTrader.script.tsx","../src/pages/home/asATrader/asTrader.widget.tsx","../src/pages/home/asAnAffilate/asAnAffiliate.ui.tsx","../src/pages/home/asAnAffilate/asAnAffiliate.script.tsx","../src/pages/home/asAnAffilate/asAnAffiliate.widget.tsx","../src/pages/home/card/card.script.tsx","../src/pages/home/card/card.widget.tsx","../src/pages/trader/page.tsx","../src/pages/trader/summary/summary.ui.tsx","../src/pages/trader/summary/summary.script.tsx","../src/pages/trader/summary/summary.widget.tsx","../src/pages/trader/titleStatistic/titleStatistic.ui.tsx","../src/pages/trader/titleStatistic/titleStatistic.script.tsx","../src/pages/trader/titleStatistic/titleStatistic.widget.tsx","../src/pages/trader/rebates/rebates.ui.tsx","../src/pages/trader/rebates/rebates.script.tsx","../src/pages/trader/rebates/rebates.widget.tsx","../src/pages/dashboard/tab/tab.script.tsx","../src/pages/dashboard/tab/tab.widget.tsx","../src/layout/layout.ui.tsx","../src/layout/layout.script.tsx","../src/layout/layout.widget.tsx"],"names":["cn","useTranslation","Button","Flex","Text","jsx","jsxs","TabTypes","data","useMemo","useState","useEffect","useRef","text","Title","toast","format","code","Select","Decimal","subDays","Divider","CopyIcon","useLocalStorage","modal","useMutation","Input","useModal","useMediaQuery","ListView","Statistic","commifyOptional","MobileCellItem","useReferralRebateSummary","Fragment","Subtitle","Dialog","DialogContent","DialogTitle","inputFormatter","TextField","useAccount","useAppContext","Icon","Bottom","useScreen","Summary","CommissionData","Row","useSummaryScript","SummaryWidget","VolBarChart","TitleStatistic","useTitleStatisticScript","TitleStatisticWidget","DatePicker","AuthGuardDataTable","useRefereeRebateSummary","useDaily","toDate","usePagination","item","tab","Box"],"mappings":"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","sourcesContent":["export { DashboardPage } from \"./page\";\nexport { HomePage} from \"../home\";\nexport { AffiliatePage } from \"../affiliate\";\nexport { TraderPage } from \"../trader\";","import { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { TabWidget } from \"./tab\";\n\nexport const DashboardPage = (props: {\n classNames?: {\n root?: string;\n loadding?: string;\n home?: string;\n dashboard?: string;\n };\n}) => {\n const { classNames = {} } = props;\n const { root, ...rest } = classNames;\n \n return (\n <div id=\"oui-affiliate-dashboard-page\" className={cn(\"oui-w-full oui-tracking-tight\", root)}>\n <TabWidget classNames={rest} />\n </div>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n cn,\n Flex,\n TabsBase,\n TabsContent,\n TabsList,\n TabsTrigger,\n Text,\n} from \"@orderly.network/ui\";\nimport { AffiliateIcon } from \"../../../components/affiliateIcon\";\nimport { TraderIcon } from \"../../../components/traderIcon\";\nimport { TabTypes } from \"../../../provider\";\nimport { AffiliatePage } from \"../../affiliate\";\nimport { HomePage } from \"../../home\";\nimport { TraderPage } from \"../../trader\";\nimport { TabReturns } from \"./tab.script\";\n\nexport const Tab: FC<\n TabReturns & {\n classNames?: {\n loadding?: string;\n home?: string;\n dashboard?: string;\n };\n }\n> = (props) => {\n const { t } = useTranslation();\n const extendNode = () => {\n if (props.isAffiliate && !props.isTrader) {\n return (\n <Button\n variant=\"contained\"\n color=\"success\"\n size=\"sm\"\n className=\"oui-px-2 oui-flex oui-gap-1\"\n style={{\n position: \"absolute\",\n top: \"50%\",\n right: \"24px\",\n transform: \"translateY(-50%)\",\n }}\n onClick={(e) => {\n props.anATrader();\n }}\n >\n <TraderIcon />\n <Text>{t(\"affiliate.asTrader.title\")}</Text>\n </Button>\n );\n }\n if (!props.isAffiliate && props.isTrader) {\n return (\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"sm\"\n className=\"oui-px-2 oui-flex oui-gap-1\"\n style={{\n position: \"absolute\",\n top: \"50%\",\n right: \"24px\",\n transform: \"translateY(-50%)\",\n }}\n onClick={(e) => {\n props.anAnAffiliate();\n }}\n >\n <AffiliateIcon />\n <Text>{t(\"affiliate.asAffiliate.title\")}</Text>\n </Button>\n );\n }\n\n return undefined;\n };\n\n if (props.isLoading) {\n return (\n <div className={cn(\"oui-max-w-[960px]\", props.classNames?.loadding)}>\n {props.splashPage?.() || <HomePage />}\n </div>\n );\n }\n\n if ((!props.isAffiliate && !props.isTrader) || props.showHome) {\n return (\n <div className={cn(\"oui-max-w-[960px]\", props?.classNames?.home)}>\n <HomePage />\n </div>\n );\n }\n\n return (\n <TabsBase\n id=\"oui-affiliate-dashboard-tab\"\n value={props.tab}\n onValueChange={(e) => {\n props.setTab(e as TabTypes);\n }}\n className={cn(\"oui-w-full\", props.classNames?.dashboard)}\n >\n <TabsList\n className={cn(\n \"oui-px-6 oui-flex oui-flex-row oui-justify-start oui-h-[44px] oui-relative oui-items-end\",\n \"oui-text-base md:oui-text-lg\",\n \"oui-rounded-xl oui-bg-base-9\",\n \"oui-border oui-border-line-6\",\n props.isAffiliate && props.isTrader && \"oui-justify-center\",\n )}\n >\n {props.isAffiliate && (\n <TabsTrigger\n id=\"oui-affiliate-dashboard-tab-affiliate\"\n value={TabTypes.affiliate}\n >\n <Flex direction={\"row\"} gap={1} mb={2}>\n <AffiliateIcon\n fillOpacity={1}\n fill=\"currentColor\"\n className={\n props.tab === TabTypes.affiliate\n ? \"oui-fill-white/[.98]\"\n : \"oui-fill-white/[.36]\"\n }\n />\n <Text>{t(\"common.affiliate\")}</Text>\n </Flex>\n </TabsTrigger>\n )}\n {props.isTrader && (\n <TabsTrigger\n id=\"oui-affiliate-dashboard-tab-trader\"\n value={TabTypes.trader}\n >\n <Flex direction={\"row\"} gap={1} mb={2}>\n <TraderIcon\n fillOpacity={1}\n fill=\"currentColor\"\n className={\n props.tab === TabTypes.trader\n ? \"oui-fill-white/[.98]\"\n : \"oui-fill-white/[.36]\"\n }\n />\n <Text>{t(\"affiliate.trader\")}</Text>\n </Flex>\n </TabsTrigger>\n )}\n {extendNode()}\n </TabsList>\n {props.isAffiliate && (\n <TabsContent value={TabTypes.affiliate} className=\"oui-mt-4\">\n <AffiliatePage />\n </TabsContent>\n )}\n {props.isTrader && (\n <TabsContent value={TabTypes.trader} className=\"oui-mt-4\">\n <TraderPage />\n </TabsContent>\n )}\n </TabsBase>\n );\n};\n","import { FC } from \"react\";\nimport { IconProps } from \"../utils/types\";\n\nexport const AffiliateIcon: FC<IconProps> = (props) => {\n const { size = 16, className, ...rest } = props;\n\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n {...rest}\n >\n <path d=\"M8 1.302c-3.683 0-6.655 2.985-6.667 6.667-.013 3.676 2.987 6.68 6.666 6.687s6.674-3.037 6.667-6.687c-.007-3.682-2.985-6.667-6.667-6.667m0 1.333a5.333 5.333 0 0 1 5.333 5.334c0 1.5-.625 2.852-1.622 3.821-.49-1.062-1.545-1.821-2.753-1.821H7.04c-1.207 0-2.259.75-2.75 1.812A5.3 5.3 0 0 1 2.666 7.97a5.333 5.333 0 0 1 5.333-5.334M8 3.97a2.667 2.667 0 1 0 0 5.333A2.667 2.667 0 0 0 8 3.97\" />\n <path\n d=\"M16 12.667a3.333 3.333 0 1 1-6.667 0 3.333 3.333 0 0 1 6.667 0\"\n fill=\"#1828C3\"\n />\n <path d=\"M11.917 11.433a.917.917 0 0 0-.917.917c0 .53.302 1.031.802 1.49a4.6 4.6 0 0 0 .713.53l.068.043c.05.027.117.027.167 0l.068-.042q.08-.05.177-.115c.182-.123.366-.26.536-.416.5-.459.802-.96.802-1.49a.917.917 0 0 0-.917-.917.97.97 0 0 0-.744.386.95.95 0 0 0-.756-.386\" />\n </svg>\n );\n};\n","import { FC } from \"react\";\nimport { IconProps } from \"../utils/types\";\n\nexport const TraderIcon: FC<IconProps> = (props) => {\n const { size = 16, className, ...rest } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"white\"\n fillOpacity=\"0.36\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n {...rest}\n >\n <path d=\"M7.99929 1.30212C4.31735 1.30212 1.34509 4.28679 1.33262 7.96878C1.32015 11.6454 4.32042 14.6488 7.99929 14.6561C11.6782 14.6634 14.6726 11.6194 14.666 7.96878C14.6593 4.28679 11.6812 1.30212 7.99929 1.30212ZM7.99929 2.63546C10.9448 2.63546 13.3326 5.02345 13.3326 7.96878C13.3326 9.46878 12.7078 10.8208 11.7112 11.7901C11.2202 10.7281 10.1656 9.96878 8.95762 9.96878C8.71802 9.96878 7.28042 9.96878 7.04095 9.96878C5.83369 9.96878 4.78215 10.7188 4.29095 11.7814C3.29429 10.8121 2.66595 9.46878 2.66595 7.96878C2.66595 5.02345 5.05375 2.63546 7.99929 2.63546ZM7.99929 3.96879C6.52649 3.96879 5.33255 5.16279 5.33262 6.63545C5.33262 8.10812 6.52649 9.30212 7.99929 9.30212C9.47202 9.30212 10.666 8.10812 10.666 6.63545C10.666 5.16279 9.47202 3.96879 7.99929 3.96879Z\" />\n <path\n d=\"M16 12.6667C16 14.5076 14.5076 16 12.6666 16C10.8257 16 9.33331 14.5076 9.33331 12.6667C9.33331 10.8257 10.8257 9.33333 12.6666 9.33333C14.5076 9.33333 16 10.8257 16 12.6667Z\"\n fill=\"#005A4F\"\n />\n <path\n d=\"M14.3325 13.3345C14.3325 13.2918 14.3182 13.2473 14.2857 13.2147L13.6658 12.6002L13.4315 12.8345L13.7595 13.1678H11.3325C11.2405 13.1678 11.1658 13.2425 11.1658 13.3345C11.1658 13.4265 11.2405 13.5012 11.3325 13.5012H13.7595L13.4315 13.8345L13.6658 14.0688L14.2857 13.4543C14.3182 13.4217 14.3325 13.3772 14.3325 13.3345ZM14.1658 12.0012C14.1658 11.9092 14.0912 11.8345 13.9992 11.8345H11.572L11.9002 11.5012L11.6658 11.2668L11.046 11.8813C10.981 11.9465 10.981 12.0558 11.046 12.121L11.6658 12.7355L11.9002 12.5012L11.572 12.1678H13.9992C14.0912 12.1678 14.1658 12.0932 14.1658 12.0012Z\"\n fill=\"white\"\n fillOpacity=\"0.98\"\n />\n </svg>\n );\n};\n","import { ReactNode, createContext, useContext } from \"react\";\nimport { RefferalAPI as API } from \"@orderly.network/hooks\";\n\nexport enum TabTypes {\n affiliate = \"affiliate\",\n trader = \"trader\",\n}\n\nexport type UserVolumeType = {\n \"1d_volume\"?: number;\n \"7d_volume\"?: number;\n \"30d_volume\"?: number;\n all_volume?: number;\n};\n\n// export type OverwiteCard = {\n// ref?: BuildNode,\n// refClassName?: string,\n// refIcon?: ReactNode,\n\n// trader?: BuildNode,\n// traderClassName?: string,\n// traderIcon?: ReactNode,\n// }\n\nexport type BuildNode = (state: ReferralContextReturns) => ReactNode;\n\nexport type Overwrite = {\n shortBrokerName?: string;\n brokerName?: string;\n ref?: {\n top?: BuildNode;\n card?: BuildNode;\n step?: BuildNode;\n };\n};\n\nexport type ChartConfig = {\n // affiliate: {\n // bar?: BarStyle,\n // yAxis?: YAxis,\n // xAxis?: XAxis,\n // },\n // trader: {\n // bar?: BarStyle,\n // yAxis?: YAxis,\n // xAxis?: XAxis,\n // }\n affiliate: {\n bar?: any;\n yAxis?: any;\n xAxis?: any;\n };\n trader: {\n bar?: any;\n yAxis?: any;\n xAxis?: any;\n };\n};\n\nexport type ReferralContextProps = {\n //** click become an affiliate, If this method is implemented, the `becomeAnAffiliateUrl` will not work */\n onBecomeAnAffiliate?: () => void;\n //** set become an affiliate url, default is `https://orderly.network/` */\n becomeAnAffiliateUrl?: string;\n //** bind refferal code callback */\n bindReferralCodeState?: (\n success: boolean,\n error: any,\n hide: any,\n queryParams: any,\n ) => void;\n //** click learn affilate, if this method is implemented, the `learnAffilateUrl` will not work */\n onLearnAffiliate?: () => void;\n //** set learn affiliate url, default is `https://orderly.network/` */\n learnAffiliateUrl?: string;\n //** default is `https://orderly.network/` */\n referralLinkUrl: string;\n //** referral index page */\n showReferralPage?: () => void;\n // onEnterTraderPage?: (params?: any) => void,\n // onEnterAffiliatePage?: (params?: any) => void,\n //** tab + tab content */\n showDashboard?: () => void;\n //** col chart config */\n chartConfig?: ChartConfig;\n //** overwrite refferal */\n overwrite?: Overwrite;\n //** build a splash page, if not impletement, will be dispaly referral page */\n splashPage?: () => ReactNode;\n};\n\nexport type ReferralContextReturns = {\n referralInfo?: API.ReferralInfo;\n isAffiliate: boolean;\n isTrader: boolean;\n mutate: any;\n userVolume?: UserVolumeType;\n dailyVolume?: API.DayliVolume[];\n isLoading: boolean;\n showHome: boolean;\n setShowHome: (value: boolean) => void;\n tab: TabTypes;\n setTab: React.Dispatch<React.SetStateAction<TabTypes>>;\n wrongNetwork: boolean;\n disabledConnect: boolean;\n generateCode: API.AutoGenerateCode | undefined;\n} & ReferralContextProps;\n\nexport const ReferralContext = createContext<ReferralContextReturns>(\n {} as ReferralContextReturns,\n);\n\nexport const useReferralContext = () => {\n return useContext(ReferralContext);\n};\n","import {\n FC,\n PropsWithChildren,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { format, subDays } from \"date-fns\";\nimport {\n RefferalAPI as API,\n usePrivateQuery,\n useDaily,\n useAccount,\n useMemoizedFn,\n noCacheConfig,\n} from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n ReferralContext,\n ReferralContextProps,\n ReferralContextReturns,\n TabTypes,\n UserVolumeType,\n} from \"./context\";\n\nexport const ReferralProvider: FC<PropsWithChildren<ReferralContextProps>> = (\n props,\n) => {\n const {\n becomeAnAffiliateUrl = \"https://orderly.network/\",\n learnAffiliateUrl = \"https://orderly.network/\",\n referralLinkUrl,\n chartConfig,\n overwrite,\n children,\n splashPage,\n onBecomeAnAffiliate,\n bindReferralCodeState,\n onLearnAffiliate,\n showReferralPage,\n } = props;\n\n const { state } = useAccount();\n\n const {\n data,\n mutate: referralInfoMutate,\n isLoading,\n } = usePrivateQuery<API.ReferralInfo>(\"/v1/referral/info\", {\n revalidateOnFocus: true,\n errorRetryCount: 3,\n ...noCacheConfig,\n });\n\n const { data: generateCode, mutate: generateCodeMutate } =\n usePrivateQuery<API.AutoGenerateCode>(\n \"/v1/referral/auto_referral/progress\",\n {\n revalidateOnFocus: true,\n errorRetryCount: 2,\n formatter: (data) => {\n return {\n code: data.auto_referral_code,\n requireVolume: data.required_volume,\n completedVolume: data.completed_volume,\n };\n },\n },\n );\n\n const [showHome, setShowHome] = useState(isLoading);\n\n useEffect(() => {\n setShowHome(true);\n }, [isLoading]);\n\n const { data: dailyVolume, mutate: dailyVolumeMutate } = useDaily({\n startDate: subDays(new Date(), 1),\n endDate: subDays(new Date(), 90),\n });\n\n const { data: volumeStatistics, mutate: volumeStatisticsMutate } =\n usePrivateQuery<API.UserVolStats>(\"/v1/volume/user/stats\", {\n revalidateOnFocus: true,\n });\n\n const isAffiliate = useMemo(() => {\n return (data?.referrer_info?.referral_codes?.length || 0) > 0;\n }, [data?.referrer_info]);\n\n const isTrader = useMemo(() => {\n return (data?.referee_info?.referer_code?.length || 0) > 0;\n }, [data?.referee_info]);\n\n const userVolume = useMemo<UserVolumeType>(() => {\n const volume: UserVolumeType = {};\n if (dailyVolume && dailyVolume.length > 0) {\n const now = format(new Date(), \"yyyy-MM-dd\");\n const index = dailyVolume.findIndex((item) => item.date === now);\n let oneDayVolume = 0;\n if (index !== -1) {\n oneDayVolume = dailyVolume[index].perp_volume;\n }\n volume[\"1d_volume\"] = oneDayVolume;\n }\n\n if (volumeStatistics) {\n volume[\"7d_volume\"] = volumeStatistics.perp_volume_last_7_days;\n volume[\"30d_volume\"] = volumeStatistics.perp_volume_last_30_days;\n volume[\"all_volume\"] = volumeStatistics.perp_volume_ltd;\n }\n return volume;\n }, [dailyVolume, volumeStatistics]);\n\n useEffect(() => {\n if (isAffiliate || isTrader) {\n setShowHome(false);\n }\n }, [isAffiliate, isTrader]);\n\n const memoMutate = useMemoizedFn(() => {\n volumeStatisticsMutate();\n dailyVolumeMutate();\n referralInfoMutate();\n generateCodeMutate();\n });\n\n useEffect(() => {\n const searchParams = new URLSearchParams(window.location.search);\n const refCode = searchParams.get(\"ref\");\n if (refCode) {\n localStorage.setItem(\"referral_code\", refCode);\n }\n }, []);\n\n const [tab, setTab] = useState<TabTypes>(() => {\n const savedTab = localStorage.getItem(\"orderly_affiliate_dashboard_tab\");\n return (savedTab as TabTypes) || TabTypes.affiliate;\n });\n\n useEffect(() => {\n localStorage.setItem(\"orderly_affiliate_dashboard_tab\", tab);\n }, [tab]);\n\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const lastStete = useRef<AccountStatusEnum>(AccountStatusEnum.NotConnected);\n\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (lastStete.current !== state.status) {\n lastStete.current = state.status;\n timerRef.current = setTimeout(() => {\n memoMutate();\n }, 1000);\n }\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [memoMutate, state.status]);\n\n const memoizedValue = useMemo<ReferralContextReturns>(() => {\n return {\n generateCode,\n showHome,\n referralInfo: data,\n isAffiliate: isAffiliate,\n isTrader: isTrader,\n tab,\n becomeAnAffiliateUrl,\n learnAffiliateUrl,\n referralLinkUrl,\n userVolume,\n dailyVolume,\n chartConfig,\n overwrite,\n isLoading,\n wrongNetwork,\n disabledConnect,\n setShowHome,\n setTab: setTab,\n mutate: memoMutate,\n onBecomeAnAffiliate,\n bindReferralCodeState,\n onLearnAffiliate,\n showReferralPage,\n splashPage,\n };\n }, [\n becomeAnAffiliateUrl,\n chartConfig,\n dailyVolume,\n data,\n disabledConnect,\n generateCode,\n isAffiliate,\n isLoading,\n isTrader,\n learnAffiliateUrl,\n overwrite,\n referralLinkUrl,\n showHome,\n tab,\n userVolume,\n wrongNetwork,\n onBecomeAnAffiliate,\n bindReferralCodeState,\n onLearnAffiliate,\n showReferralPage,\n splashPage,\n memoMutate,\n ]);\n\n return (\n <ReferralContext.Provider value={memoizedValue}>\n {children}\n </ReferralContext.Provider>\n );\n};\n","import { Flex, cn } from \"@orderly.network/ui\";\nimport { SummaryWidget } from \"./summary\";\nimport { ReferralLinkWidget } from \"./referralLink\";\nimport { TitleStatisticWidget } from \"./titleStatistic\";\nimport { ReferralCodesWidget } from \"./referralCodes\";\nimport { CommissionAndRefereesWidget } from \"./commissionAndReferees\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\n\nexport const AffiliatePage = () => {\n return (\n <Flex\n id=\"oui-affiliate-affiliate-page\"\n className={cn(\n \"oui-h-lvw\",\n // padding\n // \"oui-p-4 lg:oui-p-6 xl:oui-p-3\",\n \"oui-font-semibold\"\n )}\n direction={\"column\"}\n gap={4}\n >\n <Layout />\n <CommissionAndRefereesWidget />\n </Flex>\n );\n};\n\nconst Layout = () => {\n const is2XL = useMediaQuery(\"(max-width: 1279px)\");\n\n if (is2XL) {\n return <Layout1024 />;\n }\n\n return <Layout1280 />;\n};\n\nconst Layout1024 = () => {\n return (\n <>\n <div className=\"oui-flex oui-flex-col xl:oui-flex-row oui-gap-4 oui-w-full\">\n <SummaryWidget />\n <ReferralLinkWidget />\n </div>\n <TitleStatisticWidget />\n <ReferralCodesWidget />\n </>\n );\n};\n\nconst Layout1280 = () => {\n return (\n <Flex direction={\"row\"} itemAlign={\"stretch\"} gap={4}>\n <Flex direction={\"column\"} gap={4} className=\"oui-flex-1 oui-w-1/2\">\n <div className=\"oui-flex-1 oui-h-full oui-w-full\">\n <SummaryWidget />\n </div>\n <TitleStatisticWidget />\n </Flex>\n <Flex direction={\"column\"} gap={4} className=\"oui-w-1/2\">\n <ReferralLinkWidget />\n {/* <div className=\"oui-h-[360px]\"> */}\n <div className=\"oui-flex-1\">\n <ReferralCodesWidget />\n </div>\n {/* </div> */}\n </Flex>\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { Flex, Select, Text } from \"@orderly.network/ui\";\nimport { SummaryReturns } from \"./summary.script\";\nimport { USDCIcon } from \"../../../components/usdcIcon\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Summary: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-affiliate-summary\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n height={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9\"\n >\n <Title {...props} />\n <CommissionData {...props} />\n <Flex direction={\"column\"} width={\"100%\"} gap={2}>\n <Row\n title={`${t(\"affiliate.referralVol\")} (USDC)`}\n value={props.referralVol}\n dp={2}\n {...props}\n />\n <Row\n title={t(\"affiliate.referees\")}\n value={props.referees}\n dp={0}\n {...props}\n />\n <Row\n title={t(\"affiliate.summary.refereesTraded\")}\n value={props.refereesTades}\n dp={0}\n {...props}\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.summary\")}</Text>\n <div className={\"oui-min-w-14\"}>\n <Select.options\n size={\"xs\"}\n value={props.period}\n onValueChange={props.onPeriodChange}\n options={props.periodTypes}\n />\n </div>\n </Flex>\n );\n};\n\nconst CommissionData: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n gradient=\"primary\"\n angle={180}\n r=\"xl\"\n py={4}\n px={6}\n width={\"100%\"}\n direction={\"column\"}\n gap={3}\n height={\"100%\"}\n className=\"oui-max-h-[104px]\"\n >\n <Text intensity={54} className=\"oui-text-base 2xl:oui-text-lg\">\n {`${t(\"affiliate.commission\")} (USDC)`}\n </Text>\n <Flex\n direction={\"row\"}\n gap={3}\n className=\"oui-text-xl md:oui-text-2xl xl:oui-text-3xl\"\n >\n <USDCIcon className=\"md:oui-w-[24px] md:oui-h-[24px] lg:oui-w-[28px] lg:oui-h-[28px] \" />\n <Text>\n {commifyOptional(props.commission, { fix: 2, fallback: \"0\" })}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\nconst Row: FC<\n SummaryReturns & {\n title: string;\n value: number;\n dp: number;\n }\n> = (props) => {\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text\n intensity={54}\n className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n >\n {props.title}\n </Text>\n <Text className=\"oui-text-xs md:oui-text-sm xl:oui-text-base\">\n {commifyOptional(props.value, { fix: props.dp, fallback: \"0\" })}\n </Text>\n </Flex>\n );\n};\n","import { FC } from \"react\";\n\nexport const USDCIcon: FC<{\n className?: string;\n}> = (props) => {\n return (\n <svg\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n >\n <g clipPath=\"url(#a)\">\n <path\n d=\"M10.5 20c5.542 0 10-4.458 10-10s-4.458-10-10-10S.5 4.458.5 10s4.458 10 10 10\"\n fill=\"#2775CA\"\n />\n <path\n d=\"M13.5 11.473c0-1.452-.94-1.95-2.82-2.158-1.344-.166-1.613-.498-1.613-1.078s.448-.955 1.343-.955c.806 0 1.254.25 1.478.872.045.124.18.207.313.207h.717c.179 0 .313-.125.313-.29v-.042c-.179-.913-.985-1.618-2.015-1.701v-.996c0-.166-.134-.29-.358-.332h-.671c-.18 0-.314.124-.359.332v.954c-1.343.166-2.194.996-2.194 2.034 0 1.369.896 1.908 2.776 2.116 1.254.207 1.657.456 1.657 1.12s-.627 1.12-1.477 1.12c-1.165 0-1.568-.456-1.702-1.078a.32.32 0 0 0-.313-.25h-.762c-.179 0-.313.125-.313.291v.042c.179 1.037.895 1.784 2.373 1.991v.996c0 .166.134.29.358.332h.672c.18 0 .313-.124.358-.332v-.996c1.344-.207 2.239-1.079 2.239-2.199\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n d=\"M8.24 16.57c-3.458-1.215-5.23-4.986-3.945-8.324.665-1.821 2.127-3.208 3.944-3.859.178-.086.266-.216.266-.433v-.607c0-.174-.088-.304-.266-.347-.044 0-.133 0-.177.043-4.21 1.3-6.516 5.68-5.186 9.798.798 2.428 2.704 4.292 5.186 5.072.177.087.355 0 .4-.173.043-.043.043-.087.043-.173v-.608c0-.13-.133-.303-.266-.39m4.698-13.527c-.178-.086-.355 0-.4.174-.043.043-.043.086-.043.173v.607c0 .174.133.347.266.434 3.457 1.213 5.23 4.985 3.944 8.323-.664 1.821-2.127 3.209-3.944 3.859-.178.086-.266.216-.266.433v.607c0 .174.088.304.266.347.044 0 .133 0 .177-.043 4.21-1.3 6.515-5.68 5.186-9.798-.798-2.471-2.748-4.335-5.186-5.116\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M.5 0h20v20H.5z\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useReferralContext } from \"../../../provider\";\nimport { SummaryFilter } from \"../../../utils/types\";\n\nexport type SummaryReturns = {\n period: string;\n periodTypes: { label: string; value: string }[];\n onPeriodChange: (item: string) => void;\n commission: number;\n referralVol: number;\n referees: number;\n refereesTades: number;\n};\n\nexport const useSummaryScript = (): SummaryReturns => {\n const { t } = useTranslation();\n const [period, setPeriod] = useState<SummaryFilter>(\"All\");\n\n const periodTypes: { label: string; value: SummaryFilter }[] = [\n { label: t(\"common.all\"), value: \"All\" },\n { label: t(\"common.select.1d\"), value: \"1D\" },\n { label: t(\"common.select.7d\"), value: \"7D\" },\n { label: t(\"common.select.30d\"), value: \"30D\" },\n ];\n\n const { referralInfo } = useReferralContext();\n\n const commission = useMemo(() => {\n if (!referralInfo || !referralInfo.referrer_info) {\n return 0;\n }\n switch (period) {\n case \"All\":\n return referralInfo.referrer_info.total_referrer_rebate;\n case \"1D\":\n return referralInfo.referrer_info[\"1d_referrer_rebate\"];\n case \"7D\":\n return referralInfo.referrer_info[\"7d_referrer_rebate\"];\n case \"30D\":\n return referralInfo.referrer_info[\"30d_referrer_rebate\"];\n }\n }, [referralInfo, period]);\n\n const referralVol = useMemo(() => {\n if (!referralInfo || !referralInfo.referrer_info) {\n return 0;\n }\n switch (period) {\n case \"All\":\n return referralInfo.referrer_info.total_referee_volume;\n case \"1D\":\n return referralInfo.referrer_info[\"1d_referee_volume\"];\n case \"7D\":\n return referralInfo.referrer_info[\"7d_referee_volume\"];\n case \"30D\":\n return referralInfo.referrer_info[\"30d_referee_volume\"];\n }\n }, [referralInfo, period]);\n\n const referees = useMemo(() => {\n if (!referralInfo || !referralInfo.referrer_info) {\n return 0;\n }\n switch (period) {\n case \"All\":\n return referralInfo.referrer_info.total_invites;\n case \"1D\":\n return referralInfo.referrer_info[\"1d_invites\"];\n case \"7D\":\n return referralInfo.referrer_info[\"7d_invites\"];\n case \"30D\":\n return referralInfo.referrer_info[\"30d_invites\"];\n }\n }, [referralInfo, period]);\n\n const refereesTades = useMemo(() => {\n if (!referralInfo || !referralInfo.referrer_info) {\n return 0;\n }\n switch (period) {\n case \"All\":\n return referralInfo.referrer_info.total_traded;\n case \"1D\":\n return referralInfo.referrer_info[\"1d_traded\"];\n case \"7D\":\n return referralInfo.referrer_info[\"7d_traded\"];\n case \"30D\":\n return referralInfo.referrer_info[\"30d_traded\"];\n }\n }, [referralInfo, period]);\n\n const onPeriodChange = (item: string) => {\n setPeriod(item as SummaryFilter);\n };\n\n return {\n period,\n periodTypes,\n onPeriodChange,\n commission,\n referralVol,\n referees,\n refereesTades,\n };\n};\n","import { useSummaryScript } from \"./summary.script\";\nimport { Summary } from \"./summary.ui\";\n\nexport const SummaryWidget = () => {\n const state = useSummaryScript();\n return <Summary {...state} />;\n};\n","import { FC } from \"react\";\nimport {\n CopyIcon,\n Divider,\n Flex,\n modal,\n Text,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { ReferralLinkReturns } from \"./referralLink.script\";\nimport { AutoHideText } from \"../../../components/autoHideText\";\nimport { Trans, useTranslation } from \"@orderly.network/i18n\";\n\nexport const ReferralLink: FC<ReferralLinkReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-affiliate-referralLink\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9\"\n >\n <Title {...props} />\n <Flex\n width={\"100%\"}\n className=\"oui-flex oui-flex-col 3xl:oui-flex-row\"\n gap={4}\n >\n <div className=\"oui-w-full 3xl:oui-w-1/3\">\n <Subtitle {...props} />\n </div>\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n className=\"3xl:oui-w-2/3 3xl:oui-gap-2\"\n >\n <Input\n title={t(\"affiliate.referralCode\")}\n value={props.refCode}\n {...props}\n />\n <Input\n title={t(\"affiliate.referralLink\")}\n value={props.refLink}\n {...props}\n />\n </Flex>\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<ReferralLinkReturns> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.referralLink\")}</Text>\n </Flex>\n );\n};\n\nconst Subtitle: FC<ReferralLinkReturns> = (props) => {\n const { t } = useTranslation();\n\n const item = (\n title: string,\n value: string,\n gradient: boolean,\n className?: string,\n tooltip?: any\n ) => {\n const valueClsName =\n \"oui-text-lg md:oui-text-xl lg:oui-text-2xl xl:oui-text-3xl\";\n return (\n <Flex direction={\"column\"} itemAlign={\"start\"} className={className}>\n <Flex direction={\"row\"} gap={2}>\n {/* <Text>{title}</Text> */}\n <Alert title={title} tooltip={tooltip} />\n </Flex>\n {gradient ? (\n <Text.gradient color=\"brand\" className={valueClsName}>\n {value}\n </Text.gradient>\n ) : (\n <Text className={valueClsName}>{value}</Text>\n )}\n </Flex>\n );\n };\n\n return (\n <Flex direction={\"row\"} width={\"100%\"}>\n {item(\n t(\"affiliate.referralLink.earn\"),\n props.earn || \"-\",\n true,\n \"oui-flex-1\",\n <span>\n <Text.gradient color=\"brand\">{props.earn || \"-\"}</Text.gradient>{\" \"}\n {t(\"affiliate.referralLink.earn.tooltip\", {\n brokerName: props.brokerName,\n })}\n </span>\n // @ts-ignore\n // <Trans\n // i18nKey=\"affiliate.referralLink.earn.tooltip\"\n // values={{\n // value: props.earn || \"-\",\n // brokerName: props.brokerName,\n // }}\n // components={[<Text.gradient color=\"brand\" />]}\n // />\n )}\n {item(\n t(\"affiliate.referralLink.share\"),\n props.share || \"-\",\n false,\n \"oui-flex-1\",\n // @ts-ignore\n <Trans\n i18nKey=\"affiliate.referralLink.share.tooltip\"\n values={{\n value: props.share || \"-\",\n brokerName: props.brokerName,\n }}\n components={[<Text.gradient color=\"brand\" />]}\n />\n )}\n </Flex>\n );\n};\n\nconst Input: FC<\n ReferralLinkReturns & {\n title: string;\n value?: string;\n }\n> = (props) => {\n const { title, value = \"-\" } = props;\n return (\n <Flex\n r=\"xl\"\n p={3}\n gap={4}\n direction={\"row\"}\n width={\"100%\"}\n className=\"oui-bg-base-8\"\n >\n <Text className=\"oui-text-base-contrast-54 oui-flex-shrink oui-text-2xs md:oui-text-xs xl:oui-text-sm\">\n {title}\n </Text>\n <Flex\n direction={\"row\"}\n justify={\"end\"}\n gap={2}\n className=\"oui-flex-1 oui-text-xs md:oui-text-sm xl:oui-text-base\"\n >\n <AutoHideText text={value} />\n <button\n className=\"oui-cursor-pointer oui-text-sm oui-flex-shrink\"\n onClick={() => {\n navigator.clipboard.writeText(value);\n props.onCopy?.(value);\n }}\n >\n <CopyIcon\n size={12}\n color=\"white\"\n className=\"oui-w-[13px] oui-h-[13px] md:oui-w-[14px] md:oui-h-[14px] xl:oui-w-4 xl:oui-h-4\"\n />\n </button>\n </Flex>\n </Flex>\n );\n};\n\nconst Alert: FC<{\n title: string;\n tooltip: any;\n}> = (props) => {\n return (\n <Tooltip content={props.tooltip} className=\"oui-max-w-[200px]\">\n <div\n onClick={() => {\n modal.alert({\n title: props.title,\n message: (\n <div className=\"oui-text-base-contrast/30 oui-space-y-3 oui-text-xs desktop:oui-text-xs\">\n {props.tooltip}\n </div>\n ),\n });\n }}\n >\n <Flex direction={\"column\"}>\n <Text\n intensity={54}\n className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n >\n {props.title}\n </Text>\n <Divider className=\"oui-w-full\" lineStyle=\"dotted\" intensity={16} />\n </Flex>\n </div>\n </Tooltip>\n );\n};\n","\nimport { cn } from \"@orderly.network/ui\";\nimport { FC, useEffect, useMemo, useRef, useState } from \"react\";\n\nexport const AutoHideText: FC<{\n text: string;\n className?: string;\n visibleCount?: number;\n}> = (props) => {\n const { text, visibleCount } = props;\n const containerRef = useRef<HTMLDivElement | null>(null);\n const textRef = useRef<HTMLDivElement>(null);\n const lastContainerWidth = useRef<number | undefined>(undefined);\n\n function getTextWidth(ref: HTMLDivElement, text: string): number | undefined {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n const element = ref; \n if (context && element) {\n let fontStyle = getComputedStyle(element).font;\n if (fontStyle.length === 0) {\n fontStyle = [\n getComputedStyle(element).fontWeight,\n getComputedStyle(element).fontSize,\n getComputedStyle(element).fontFamily,\n ].join(\" \");\n }\n context.font = fontStyle;\n context.letterSpacing = getComputedStyle(element).letterSpacing;\n\n const width = context.measureText(text).width;\n return width;\n }\n return undefined;\n }\n\n const [visibleChars, setVisibleChars] = useState(0);\n\n useEffect(() => {\n const calculateVisibleChars = () => {\n if (props.visibleCount !== undefined) return;\n if (containerRef.current && textRef.current) {\n const containerWidth = containerRef.current.clientWidth;\n\n if (containerWidth == lastContainerWidth.current) return;\n lastContainerWidth.current = containerWidth;\n\n const textElement = textRef.current;\n\n const textContent = text;\n\n const pWidth = Math.ceil(getTextWidth(textElement, \"...\") || 0);\n \n const maxDisplayW = containerWidth - pWidth;\n let count = 0;\n while(count < text.length) {\n let contentW = getTextWidth(textElement, subText(text, count++)) || maxDisplayW;\n \n if (contentW <= maxDisplayW) {\n break;\n }\n }\n setVisibleChars(textContent.length - count);\n }\n };\n\n lastContainerWidth.current = undefined;\n calculateVisibleChars();\n\n window.addEventListener(\"resize\", calculateVisibleChars);\n return () => {\n lastContainerWidth.current = undefined;\n window.removeEventListener(\"resize\", calculateVisibleChars);\n };\n }, [text, textRef]);\n\n const truncatedText = useMemo(() => {\n if (visibleChars + 1 >= text.length) {\n return text;\n }\n\n const maxCharacters = visibleCount || visibleChars;\n\n const startText = text.slice(0, Math.ceil(maxCharacters / 2));\n const endText = text.slice(\n text.length - Math.floor(maxCharacters / 2),\n text.length\n );\n\n return `${startText}...${endText}`;\n }, [text, visibleCount, visibleChars]);\n\n return (\n <div ref={containerRef} className={cn(\"oui-relative oui-w-full oui-text-end\", props.className)}>\n <div\n className={cn(\n \"oui-hidden oui-whitespace-nowrap oui-absolute oui-top-0 oui-bottom-0 oui-right-0 oui-left-0\",\n )}\n >\n <span ref={textRef}>{text}</span>\n </div>\n <span>{truncatedText}</span>\n </div>\n );\n};\n\n\nconst subText = (text: string, count: number) => {\n const start = Math.floor(text.length / 2 - (count > 0 ? count / 2 : 1));\n const first = text.slice(0, start);\n const end = text.slice(start + count);\n return first + end;\n}","import { useMemo } from \"react\";\nimport { RefferalAPI, useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { toast } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useReferralContext } from \"../../../provider\";\nimport { generateReferralLink } from \"../../../utils/utils\";\n\nexport type ReferralLinkReturns = {\n onCopy?: (value: string) => void;\n refLink?: string;\n refCode?: string;\n earn?: string;\n share?: string;\n brokerName?: string;\n};\n\nexport const useReferralLinkScript = (): ReferralLinkReturns => {\n const { t } = useTranslation();\n\n const onCopy = (value: string) => {\n toast.success(t(\"common.copy.copied\"));\n };\n\n const { referralInfo, referralLinkUrl, overwrite } = useReferralContext();\n const [pinCodes, setPinCodes] = useLocalStorage<string[]>(\n \"orderly_referral_codes\",\n [] as string[],\n );\n\n const codes = useMemo((): RefferalAPI.ReferralCode[] => {\n if (!referralInfo?.referrer_info?.referral_codes)\n return [] as RefferalAPI.ReferralCode[];\n const referralCodes = [...referralInfo?.referrer_info?.referral_codes];\n\n const pinedItems: RefferalAPI.ReferralCode[] = [];\n\n for (let i = 0; i < pinCodes.length; i++) {\n const code = pinCodes[i];\n\n const index = referralCodes.findIndex((item) => item.code === code);\n if (index !== -1) {\n pinedItems.push({ ...referralCodes[index] });\n referralCodes.splice(index, 1);\n }\n }\n\n return [...pinedItems, ...referralCodes];\n }, [referralInfo?.referrer_info?.referral_codes, pinCodes]);\n\n const firstCode = useMemo(() => {\n if (codes.length === 0) {\n return undefined;\n }\n\n return codes[0];\n }, [codes]);\n\n const code = useMemo(() => {\n return firstCode?.code;\n }, [firstCode]);\n\n const referralLink = useMemo(() => {\n if (!firstCode) return \"\";\n\n return generateReferralLink(referralLinkUrl, firstCode.code);\n }, [firstCode]);\n\n const earn = useMemo(() => {\n const value = new Decimal(firstCode?.referrer_rebate_rate || \"0\")\n .mul(100)\n .toDecimalPlaces(0, Decimal.ROUND_DOWN)\n .toString();\n return `${value}%`;\n }, [firstCode?.referrer_rebate_rate]);\n\n const share = useMemo(() => {\n const value = new Decimal(firstCode?.referee_rebate_rate || \"0\")\n .mul(100)\n .toDecimalPlaces(0, Decimal.ROUND_DOWN)\n .toString();\n return `${value}%`;\n }, [firstCode?.referee_rebate_rate]);\n\n return {\n onCopy,\n refLink: referralLink,\n refCode: code,\n share,\n earn,\n brokerName: overwrite?.brokerName ?? overwrite?.shortBrokerName,\n };\n};\n","import { format, toDate } from \"date-fns\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { toast } from \"@orderly.network/ui\";\n\n// import { toZonedTime } from \"date-fns-tz\";\n// const { toZonedTime } = require(\"date-fns-tz\");\n\nexport function generateReferralLink(referralLinkUrl: string, code: string) {\n return `${referralLinkUrl || window?.location?.origin}?ref=${code}`;\n}\n\nexport async function copyText(content: string) {\n try {\n await navigator.clipboard.writeText(content);\n toast.success(i18n.t(\"common.copy.copied\"));\n } catch (error) {\n toast.success(i18n.t(\"common.copy.failed\"));\n }\n}\n\nexport function parseTime(time?: number | string): Date | null {\n if (!time) {\n return null;\n }\n const timestamp = typeof time === \"number\" ? time : Date.parse(time);\n\n if (!isNaN(timestamp)) {\n return new Date(timestamp);\n }\n\n return null;\n}\n\n//** will be return YYYY-MM-ddThh:mm:ssZ */\nexport function formatDateTimeToUTC(input?: number | string): string {\n if (input === undefined) {\n return \"\";\n }\n const date = toDate(input);\n const utcDate = toUTCDate(date);\n return format(utcDate, \"yyyy-MM-dd HH:mm:ss 'UTC'\");\n}\n\n//** will return yyyy-MM-dd */\nexport function formatYMDTime(time?: number | string): string | undefined {\n if (time === undefined) {\n return undefined;\n }\n const date = toDate(time);\n const utcDate = toUTCDate(date);\n return format(utcDate, \"yyyy-MM-dd\");\n}\n\n//** will return hh:mm */\nexport function formatHMTime(time?: number | string): string | undefined {\n if (time === undefined) {\n return undefined;\n }\n const date = toDate(time);\n const utcDate = toUTCDate(date);\n return format(utcDate, \"hh:mm\");\n}\n\n//** will return MM-dd */\nexport function formatMdTime(time?: number | string): string | undefined {\n if (time === undefined) {\n return undefined;\n }\n const date = toDate(time);\n const utcDate = toUTCDate(date);\n return format(utcDate, \"MM-dd\");\n}\n\n//** compare two date, yyyy-mm-dd */\nexport function compareDate(d1?: Date, d2?: Date) {\n const isEqual =\n d1 &&\n d2 &&\n d1.toISOString().substring(0, 10) === d2.toISOString().substring(0, 10);\n\n return isEqual;\n}\n\nexport function generateData(\n itemCount: number,\n data: any[] | null | undefined,\n timeKey: string,\n valueKey: string,\n): [string, number][] {\n const result: [string, number][] = [];\n\n for (let i = 0; i < itemCount; i++) {\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() - i - 1);\n const currentDateStr = currentDate.toISOString().substring(0, 10);\n\n const matchedData = data?.find((item) => {\n const itemDate = parseTime(item[timeKey]);\n if (!itemDate) {\n return false;\n }\n return itemDate.toISOString().substring(0, 10) === currentDateStr;\n });\n\n if (matchedData) {\n result.push([currentDateStr, matchedData[valueKey]]);\n } else {\n result.push([currentDateStr, 0]);\n }\n }\n\n return result.reverse();\n}\n\nfunction toUTCDate(date: Date): Date {\n return new Date(date.toUTCString());\n}\n","import { useReferralLinkScript } from \"./referralLink.script\";\nimport { ReferralLink } from \"./referralLink.ui\";\n\nexport const ReferralLinkWidget = () => {\n const state = useReferralLinkScript();\n return <ReferralLink {...state} />;\n};\n","import { FC } from \"react\";\nimport { VolBarChart } from \"@orderly.network/chart\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { Flex, Select, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { TitleStatisticReturns } from \"./titleStatistic.script\";\n\nexport const TitleStatistic: FC<TitleStatisticReturns> = (props) => {\n return (\n <Flex\n id=\"oui-affiliate-affiliate-titleStatistic\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9\"\n >\n <Title {...props} />\n <Flex className=\"oui-h-[170px] 2xl:oui-h-[196px] oui-w-full oui-flex oui-flex-row oui-items-stretch\">\n <VolBarChart\n data={props.dataSource || EMPTY_LIST}\n colors={{ fill: \"rgba(0, 180, 158, 1)\" }}\n className=\"oui-w-full oui-flex-1\"\n tooltip={{\n rm: Decimal.ROUND_DOWN,\n dp: props.volType === \"Commission\" ? 6 : 2,\n }}\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<TitleStatisticReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.statistics\")}</Text>\n <Flex direction={\"row\"} gap={2} className={\"oui-min-w-14\"}>\n <Select.options\n size={\"xs\"}\n value={props.period}\n onValueChange={props.onPeriodChange}\n options={props.periodTypes}\n />\n <Select.options\n size={\"xs\"}\n value={props.volType}\n onValueChange={props.onVolTypeChange}\n options={props.volTypes}\n />\n </Flex>\n </Flex>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { fillData } from \"../../../utils/chartUtils\";\nimport { RefferalAPI, useReferralRebateSummary } from \"@orderly.network/hooks\";\nimport { format, subDays } from \"date-fns\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport type TitleStatisticReturns = {\n period: string;\n periodTypes: { label: string; value: string }[];\n onPeriodChange: (item: string) => void;\n volType: string;\n volTypes: { label: string; value: string }[];\n onVolTypeChange: (item: string) => void;\n dataSource?: {\n date: string;\n volume: number;\n }[];\n};\n\nexport const useTitleStatisticScript = (): TitleStatisticReturns => {\n const { t } = useTranslation();\n\n const [period, setPeriod] = useState(\"7\");\n\n const periodTypes = [\n { label: t(\"common.select.7d\"), value: \"7\" },\n { label: t(\"common.select.30d\"), value: \"30\" },\n { label: t(\"common.select.90d\"), value: \"90\" },\n ];\n\n const onPeriodChange = (item: string) => {\n setPeriod(item);\n };\n\n const [volType, setVolType] = useState(\"Commission\");\n const volTypes = [\n { label: t(\"affiliate.commission\"), value: \"Commission\" },\n { label: t(\"affiliate.referralVol\"), value: \"ref\" },\n ];\n\n const onVolTypeChange = (item: string) => {\n setVolType(item);\n };\n\n const dateRange = useMemo((): {\n startDate: Date;\n endDate: Date;\n } => {\n if (period === \"7\") {\n return {\n startDate: subDays(new Date(), 7),\n endDate: subDays(new Date(), 1),\n };\n } else if (period === \"30\") {\n return {\n startDate: subDays(new Date(), 30),\n endDate: subDays(new Date(), 1),\n };\n } else if (period === \"90\") {\n return {\n startDate: subDays(new Date(), 90),\n endDate: subDays(new Date(), 1),\n };\n } else {\n return {\n startDate: subDays(new Date(), 7),\n endDate: subDays(new Date(), 1),\n };\n }\n }, [period]);\n\n const [rebateSummary] = useReferralRebateSummary({\n startDate: format(dateRange.startDate, \"yyyy-MM-dd\"),\n endDate: format(dateRange.endDate, \"yyyy-MM-dd\"),\n size: Number(period),\n });\n\n const dataSource = useMemo(() => {\n return (\n (rebateSummary as RefferalAPI.ReferralRebateSummary[] | null)?.map(\n (e) => ({\n date: e.date,\n volume: volType === \"Commission\" ? e.referral_rebate : e.volume,\n })\n ) || []\n ).reverse();\n }, [rebateSummary, volType]);\n\n return {\n period,\n periodTypes,\n onPeriodChange,\n volType,\n volTypes,\n onVolTypeChange,\n dataSource: fillData(Number(period), dataSource),\n };\n};\n","import { format, subDays } from \"date-fns\";\nimport type { VolChartDataItem } from \"@orderly.network/chart\";\n\nexport function fillData(\n days: number,\n origin?: VolChartDataItem[],\n): VolChartDataItem[] {\n const now = Date();\n const result = new Array(days)\n .fill(0)\n .map<VolChartDataItem>((_, index) => {\n return {\n date: format(subDays(now, index + 1), \"yyyy-MM-dd\"),\n volume: 0,\n opacity: 0,\n };\n })\n .reverse();\n\n const dataObject = origin?.reduce<{ [key: string]: VolChartDataItem }>(\n (acc, curr) => {\n acc[curr.date] = curr;\n return acc;\n },\n {},\n );\n\n for (let index = 0; index < result.length; index++) {\n const element = result[index];\n const originData = dataObject?.[element.date];\n if (originData) {\n result[index] = { ...originData, opacity: originData.volume > 0 ? 1 : 0 };\n }\n }\n\n return result;\n}\n","import { useTitleStatisticScript } from \"./titleStatistic.script\";\nimport { TitleStatistic } from \"./titleStatistic.ui\";\n\nexport const TitleStatisticWidget = () => {\n const state = useTitleStatisticScript();\n return <TitleStatistic {...state} />;\n};\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n DataTable,\n Divider,\n Flex,\n ListView,\n Statistic,\n Text,\n cn,\n Column,\n CopyIcon,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { EditCode } from \"../../../components/editCodeBtn\";\nimport { EditIcon } from \"../../../components/editIcon\";\nimport { PinBtn } from \"../../../components/pinButton\";\nimport { ReferralCodesReturns, ReferralCodeType } from \"./referralCodes.script\";\n\nexport const ReferralCodes: FC<ReferralCodesReturns> = (props) => {\n const isTablet = useMediaQuery(\"(max-width: 767px)\");\n return (\n <Flex\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-h-full oui-bg-base-9 oui-p-6 oui-tabular-nums\"\n >\n <Title {...props} />\n\n <div className=\"oui-flex oui-w-full oui-flex-col 2xl:oui-h-full\">\n <Divider />\n {isTablet ? <MobileLayout {...props} /> : <DesktopLayout {...props} />}\n </div>\n </Flex>\n );\n};\n\nconst Title: FC<ReferralCodesReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.referralCodes\")}</Text>\n <div className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\">\n <Text className=\"oui-text-base-contrast-54\">\n {`${t(\"affiliate.referralCodes.remaining\")}: `}\n </Text>\n <Text className=\"oui-text-primary-light\">\n {props.codes?.length || \"--\"}\n </Text>\n </div>\n </Flex>\n );\n};\n\nconst MobileLayout: FC<ReferralCodesReturns> = (props) => {\n return (\n <ListView\n dataSource={props.codes}\n className=\"oui-max-h-[240px] oui-w-full\"\n renderItem={(e, index) => {\n return (\n <Flex direction={\"column\"}>\n <MobileCell\n key={index}\n data={e}\n editRate={props.editRate}\n copyLink={props.copyLink}\n copyCode={props.copyCode}\n setPinCode={props.setPinCode}\n editCode={props.editCode}\n />\n <Divider className=\"oui-mt-3 oui-w-full\" />\n </Flex>\n );\n }}\n />\n );\n};\n\nconst MobileCellItem: FC<{\n // key: string;\n title: string;\n value: string | ReactNode;\n copyable?: boolean;\n align?: \"start\" | \"end\" | undefined;\n className?: string;\n editRate?: () => void;\n onCopy?: () => void;\n}> = (props) => {\n const { title, copyable, value, align, className, editRate, onCopy } = props;\n return (\n <Statistic\n id=\"oui-affiliate-affiliate-referralCodes\"\n className={cn(\"oui-flex-1\", className)}\n label={\n <Text className=\"oui-text-2xs oui-text-base-contrast-36\">{title}</Text>\n }\n align={align}\n children={\n <Flex direction={\"row\"} gap={1}>\n <Text.formatted\n copyable={copyable}\n onCopy={() => {\n onCopy?.();\n }}\n className=\"oui-mt-[6px] oui-text-sm oui-text-base-contrast-80\"\n >\n {value as string}\n </Text.formatted>\n {editRate && (\n <EditIcon\n className=\"oui-mt-px oui-cursor-pointer oui-fill-white/[.36] hover:oui-fill-white/80\"\n fillOpacity={1}\n fill=\"currentColor\"\n onClick={() => editRate()}\n />\n )}\n </Flex>\n }\n />\n );\n};\nconst MobileCell: FC<{\n data: ReferralCodeType;\n setPinCode: (code: string, del?: boolean) => void;\n copyLink: (code: string) => void;\n copyCode: (code: string) => void;\n editRate: (code: ReferralCodeType) => void;\n editCode: (code: ReferralCodeType) => void;\n}> = (props) => {\n const { data, setPinCode, copyLink, editRate, editCode } = props;\n const { t } = useTranslation();\n\n return (\n <Flex key={data.code} gap={3} direction={\"column\"} className=\"oui-w-full\">\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n itemAlign={\"stretch\"}\n width={\"100%\"}\n >\n <MobileCellItem\n title={t(\"affiliate.referralCode\")}\n value={data.code}\n copyable\n onCopy={() => {\n props.copyCode?.(data.code);\n }}\n editRate={() => {\n editCode(data);\n }}\n />\n <MobileCellItem\n title={t(\"affiliate.referralCodes.column.you&Referee\")}\n value={getRate(data)}\n align=\"end\"\n editRate={() => {\n editRate(data);\n }}\n />\n <MobileCellItem\n title={t(\"affiliate.referralCodes.column.referees&Traders\")}\n value={getCount(data)}\n align=\"end\"\n className={\"oui-hidden md:oui-flex\"}\n />\n </Flex>\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n itemAlign={\"stretch\"}\n width={\"100%\"}\n className=\"md:oui-hidden\"\n >\n <MobileCellItem\n title={t(\"affiliate.referees\")}\n value={getCount(data).split(\"/\")?.[0]}\n align=\"start\"\n />\n <MobileCellItem\n title={t(\"affiliate.referralCodes.column.traders\")}\n value={getCount(data).split(\"/\")?.[1]}\n align=\"end\"\n />\n </Flex>\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n itemAlign={\"stretch\"}\n width={\"100%\"}\n >\n <PinBtn\n pinned={data.isPined || false}\n onClick={(e) => {\n setPinCode(data.code, !e);\n }}\n />\n <Button\n variant=\"outlined\"\n size=\"xs\"\n className=\"oui-px-[20px]\"\n onClick={(e) => {\n copyLink(data.code);\n }}\n >\n {t(\"affiliate.referralCodes.copyLink\")}\n </Button>\n </Flex>\n </Flex>\n );\n};\n\nconst DesktopLayout: FC<ReferralCodesReturns> = (props) => {\n const { t } = useTranslation();\n\n const moreColumn = useMediaQuery(\"(min-width: 1024px)\");\n\n const columns = useMemo(() => {\n const cols: Column[] = [\n {\n title: t(\"affiliate.referralCode\"),\n dataIndex: \"code\",\n width: moreColumn ? 115 : 120,\n className: \"!oui-px-0\",\n render: (value, data) => {\n return (\n <Flex direction={\"row\"} itemAlign={\"center\"} gap={1}>\n <PinBtn\n size={12}\n pinned={data.isPined || false}\n onClick={(e) => {\n props.setPinCode(data.code, !e);\n }}\n />\n <Text.formatted\n // rule={\"\"}\n suffix={\n <>\n {data.isAutoGenerated && data.total_invites < 1 && (\n <EditCode onClick={() => props.editCode?.(data)} />\n )}\n <CopyIcon\n className=\"oui-cursor-pointer\"\n size={12}\n color=\"white\"\n onClick={() => props.copyCode?.(data.code)}\n />\n </>\n }\n copyable\n onCopy={() => {\n props.copyCode?.(data.code);\n }}\n >\n {value}\n </Text.formatted>\n </Flex>\n );\n },\n },\n {\n title: t(\"affiliate.referralCodes.column.you&Referee\"),\n dataIndex: \"dffd\",\n width: moreColumn ? 120 : 120,\n className: \"oui-pr-0\",\n render: (value, data) => {\n return (\n <Flex direction={\"row\"} itemAlign={\"center\"} gap={1}>\n {getRate(data)}\n <EditIcon\n className=\"oui-mt-[6px] oui-cursor-pointer oui-fill-white/[.36] hover:oui-fill-white/80\"\n fillOpacity={1}\n fill=\"currentColor\"\n onClick={(e) => props.editRate?.(data)}\n />\n </Flex>\n );\n },\n },\n ];\n\n if (moreColumn) {\n cols.push({\n title: t(\"affiliate.referees\"),\n dataIndex: \"referee_rebate_rate\",\n width: 65,\n className: \"oui-pr-0\",\n render: (value, data) => getCount(data).split(\"/\")[0],\n });\n cols.push({\n title: t(\"affiliate.referralCodes.column.traders\"),\n dataIndex: \"referrer_rebate_rate\",\n width: 65,\n className: \"oui-pr-0\",\n render: (value, data) => getCount(data).split(\"/\")[1],\n });\n } else {\n cols.push({\n title: t(\"affiliate.referralCodes.column.referees&Traders\"),\n dataIndex: \"total_invites/total_traded\",\n width: 120,\n fixed: \"left\",\n render: (value, data) => getCount(data),\n });\n }\n\n cols.push({\n dataIndex: \"link\",\n align: \"right\",\n width: 74,\n className: \"!oui-px-0\",\n render: (value, data) => (\n <Button\n variant=\"outlined\"\n size=\"sm\"\n className=\"oui-px-5\"\n onClick={(e) => {\n props?.copyLink?.(data.code);\n }}\n >\n {t(\"affiliate.referralCodes.copyLink\")}\n </Button>\n ),\n });\n\n return cols;\n }, [moreColumn, t]);\n\n return (\n <DataTable\n bordered\n columns={columns}\n dataSource={props.codes}\n classNames={{\n header: \"oui-px-0\",\n root: \"2xl:oui-flex-1 2xl:oui-max-h-[230px] 3xl:oui-max-h-[300px]\",\n }}\n onRow={(record) => {\n return {\n className: \"oui-h-[45px]\",\n };\n }}\n />\n );\n};\n\nconst getRate = (item: ReferralCodeType) => {\n const refereeRate = new Decimal(item.referee_rebate_rate)\n .mul(100)\n .toFixed(1, Decimal.ROUND_DOWN)\n .toString();\n const referralRate = new Decimal(item.referrer_rebate_rate)\n .mul(100)\n .toFixed(1, Decimal.ROUND_DOWN)\n .toString();\n return `${referralRate}% / ${refereeRate}%`;\n};\n\nconst getCount = (item: ReferralCodeType) => {\n return `${item.total_invites} / ${item.total_traded}`;\n};\n","import { FC, SVGProps } from \"react\";\n\nexport interface IconProps extends SVGProps<SVGSVGElement> {}\n\nexport const EditIcon: FC<IconProps> = (props) => {\n const { className, ...rest } = props;\n return (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"white\"\n fillOpacity=\"0.36\"\n className={className}\n {...rest}\n >\n <path d=\"M8.49773 1.47656C8.36523 1.47656 8.23223 1.52357 8.13823 1.61707C7.86023 1.89507 6.85973 2.89558 6.63773 3.11808L2.13523 7.62059L1.63473 8.12059C1.56523 8.19059 1.52923 8.28958 1.50973 8.38658L1.00973 10.8881C0.939727 11.2381 1.23773 11.5361 1.58773 11.4666C1.90073 11.4036 3.77673 11.0286 4.08923 10.9661C4.18623 10.9466 4.28523 10.9106 4.35523 10.8411L4.85523 10.3406L9.35773 5.83808C9.58023 5.61608 10.5807 4.61506 10.8587 4.33756C10.9522 4.24356 10.9992 4.11056 10.9992 3.97806C10.9992 3.15956 10.7907 2.57456 10.3582 2.13306C9.92173 1.68756 9.33873 1.47656 8.49773 1.47656ZM8.69473 2.48606C9.14623 2.51256 9.43873 2.61608 9.63923 2.82108C9.84423 3.03008 9.97373 3.32008 10.0017 3.76258C9.72773 4.03608 9.32673 4.43106 8.99823 4.75956C8.60173 4.36306 8.11273 3.87407 7.71623 3.47757C8.04523 3.14907 8.42123 2.75956 8.69473 2.48606ZM6.99723 4.19657L8.27923 5.47858L4.49573 9.26207L3.21373 7.98009L6.99723 4.19657ZM2.49473 8.69908L3.77673 9.98107L3.72973 10.0281C3.39973 10.0941 2.73323 10.2336 2.11923 10.3566L2.44773 8.74608L2.49473 8.69908Z\" />\n </svg>\n );\n};\n","import { FC, useState } from \"react\";\nimport { EditIcon } from \"./editIcon\";\n\nexport const EditCode: FC<{\n size?: number;\n onClick?: () => void;\n}> = (props) => {\n return (\n <button>\n <EditIcon\n className=\" oui-mt-px oui-cursor-pointer oui-fill-base-contrast-36 hover:oui-fill-base-contrast-80\"\n fillOpacity={1}\n fill=\"currentColor\"\n onClick={props.onClick}\n />\n </button>\n );\n};\n","import { FC } from \"react\";\nimport { IconProps } from \"../utils/types\";\n\nexport const PinBtn: FC<{\n pinned: boolean;\n size?: number;\n onClick?: (pinned: boolean) => void;\n}> = (props) => {\n return (\n <button\n onClick={(e) => {\n props?.onClick?.(!props.pinned);\n }}\n >\n {props.pinned === false ? (\n <UnPinIcon\n size={props.size}\n fillOpacity={1}\n className=\"orderly-fill-primary-darken hover:orderly-fill-primary-darken/80\"\n />\n ) : (\n <PinnedIcon\n size={props.size}\n fillOpacity={1}\n className=\"orderly-fill-base-contrast-36 hover:orderly-fill-base-contrast\"\n />\n )}\n </button>\n );\n};\n\nconst PinnedIcon: FC<IconProps> = (props) => {\n const { size = 12 } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n // fill=\"none\"\n fill=\"#608CFF\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M10.008 1.302a.74.74 0 0 0-.486.215c-1.033.988-1.349 1.815-.972 2.947-.88.675-1.437.841-2.536.841-1.503 0-2.484.181-3.152.848v.021a1.583 1.583 0 0 0 0 2.249l1.867 1.881-3.181 3.18c-.26.26-.28.696-.02.956.261.26.699.26.959 0l3.193-3.193 1.87 1.86a1.585 1.585 0 0 0 2.25 0h.02c.668-.667.854-1.522.854-3.144 0-1.03.212-1.758.853-2.523 1.232.361 1.95.015 2.96-.995a.68.68 0 0 0 .188-.479c0-.234-.06-.594-.209-1.041a5.34 5.34 0 0 0-1.312-2.103A5.35 5.35 0 0 0 11.05 1.51c-.448-.149-.808-.208-1.042-.208\" />\n </svg>\n );\n};\n\nconst UnPinIcon: FC<IconProps> = (props) => {\n const { size = 12 } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M10.008 1.302a.74.74 0 0 0-.486.215c-1.033.988-1.349 1.815-.972 2.947-.88.675-1.437.841-2.536.841-1.503 0-2.484.181-3.152.848v.021a1.583 1.583 0 0 0 0 2.249l1.867 1.881-3.181 3.18c-.26.26-.28.696-.02.956.261.26.699.26.959 0l3.193-3.193 1.87 1.86a1.585 1.585 0 0 0 2.25 0h.02c.668-.667.854-1.522.854-3.144 0-1.03.212-1.758.853-2.523 1.232.361 1.95.015 2.96-.995a.68.68 0 0 0 .188-.479c0-.234-.06-.594-.209-1.041a5.34 5.34 0 0 0-1.312-2.103A5.35 5.35 0 0 0 11.05 1.51c-.448-.149-.808-.208-1.042-.208m.258 1.37c.708.131 1.421.6 1.93 1.108.507.507.94 1.13 1.119 1.944-.636.61-1.026.659-1.662.324a.67.67 0 0 0-.779.116c-1.214 1.213-1.533 2.314-1.533 3.8 0 1.293-.076 1.774-.48 2.207-.113.123-.27.104-.374 0L3.799 7.486a.24.24 0 0 1-.017-.34c.239-.29.769-.514 2.226-.514 1.742.001 2.668-.447 3.812-1.52a.67.67 0 0 0 .125-.77c-.343-.685-.29-1.046.321-1.67\" />\n </svg>\n );\n};\n","import { useMemo } from \"react\";\nimport { RefferalAPI, useLocalStorage } from \"@orderly.network/hooks\";\nimport { modal } from \"@orderly.network/ui\";\nimport { useReferralContext } from \"../../../provider\";\nimport { copyText, generateReferralLink } from \"../../../utils/utils\";\nimport { EditCodeModal } from \"./editCodeModal\";\nimport { EditReferralRate } from \"./editReferralRate\";\n\nexport type ReferralCodeType = RefferalAPI.ReferralCode & {\n isPined?: boolean;\n isAutoGenerated?: boolean;\n};\n\nexport type ReferralCodesReturns = {\n copyCode: (code: string) => void;\n copyLink: (code: string) => void;\n editRate: (code: ReferralCodeType) => void;\n editCode: (code: ReferralCodeType) => void;\n setPinCode: (code: string, del?: boolean) => void;\n codes?: ReferralCodeType[];\n};\n\nexport const useReferralCodesScript = (): ReferralCodesReturns => {\n const { referralInfo, referralLinkUrl, mutate, generateCode } =\n useReferralContext();\n\n const copyLink = (code: string) => {\n copyText(generateReferralLink(referralLinkUrl, code));\n };\n const copyCode = (code: string) => {\n copyText(code);\n };\n const editRate = (code: ReferralCodeType) => {\n modal.show(EditReferralRate, { code: { ...code }, mutate });\n };\n\n const editCode = (code: ReferralCodeType) => {\n modal.show(EditCodeModal, {\n code: { ...code },\n successCallback: () => {\n mutate();\n },\n });\n };\n\n const [pinCodes, setPinCodes] = useLocalStorage<string[]>(\n \"orderly_referral_codes\",\n [] as string[],\n );\n const setPinCode = (code: string, del?: boolean) => {\n if (del) {\n const index = pinCodes.findIndex((item: string) => item === code);\n if (index !== -1) {\n pinCodes.splice(index, 1);\n }\n } else {\n pinCodes.splice(0, 0, code);\n }\n\n if (pinCodes.length > 6) {\n pinCodes.splice(pinCodes.length - 1, 1);\n }\n\n setPinCodes([...pinCodes]);\n };\n\n const codes = useMemo((): ReferralCodeType[] | undefined => {\n if (!referralInfo?.referrer_info?.referral_codes) {\n return undefined;\n }\n\n const referralCodes: ReferralCodeType[] =\n referralInfo?.referrer_info?.referral_codes?.map((item) => {\n // todo check auto generated\n if (generateCode && generateCode.code === item.code) {\n (item as ReferralCodeType).isAutoGenerated = true;\n }\n\n return item;\n });\n const pinedItems: ReferralCodeType[] = [];\n\n for (let i = 0; i < pinCodes.length; i++) {\n const code = pinCodes[i];\n\n const index = referralCodes.findIndex((item) => item.code === code);\n if (index !== -1) {\n pinedItems.push({ ...referralCodes[index], isPined: true });\n referralCodes.splice(index, 1);\n }\n }\n return [...pinedItems, ...referralCodes];\n }, [referralInfo?.referrer_info?.referral_codes, pinCodes, generateCode]);\n\n return {\n copyCode,\n copyLink,\n editRate,\n editCode,\n setPinCode,\n codes,\n };\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useMutation } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n inputFormatter,\n modal,\n SimpleDialog,\n TextField,\n Text,\n useModal,\n Flex,\n cn,\n toast,\n} from \"@orderly.network/ui\";\nimport { ReferralCodeType } from \"./referralCodes.script\";\n\nexport const EditCodeModal = modal.create<{\n code: ReferralCodeType;\n successCallback: () => void;\n}>((props) => {\n const { t } = useTranslation();\n const { visible, onOpenChange } = useModal();\n const [newCode, setNewCode] = useState<string>(\"\");\n const [filedError, setFiledError] = useState<{\n length: boolean;\n format: boolean;\n }>({\n length: false,\n format: false,\n });\n const [editCode, { error, isMutating }] = useMutation(\n \"/v1/referral/edit_referral_code\",\n \"POST\",\n );\n useEffect(() => {\n setNewCode(props.code.code);\n }, [props.code]);\n\n useEffect(() => {\n const _code = newCode.toUpperCase();\n const _fieldError = {\n length: false,\n format: false,\n };\n if (_code.length < 4 || _code.length > 10) {\n _fieldError.length = true;\n }\n if (!/^[A-Z0-9]+$/.test(_code)) {\n _fieldError.format = true;\n }\n setFiledError(_fieldError);\n }, [newCode]);\n\n return (\n <SimpleDialog\n classNames={{\n content: \"oui-max-w-[360px]\",\n }}\n title={<div>{t(\"affiliate.referralCode.editCodeModal.title\")}</div>}\n open={visible}\n onOpenChange={onOpenChange}\n actions={{\n primary: {\n loading: isMutating,\n disabled: filedError.length || filedError.format,\n label: t(\"common.confirm\"),\n onClick: async () => {\n try {\n const res = await editCode({\n current_referral_code: props.code.code,\n new_referral_code: newCode.toUpperCase(),\n });\n if (res.success) {\n toast.success(\n t(\"affiliate.referralCode.editCodeModal.success\"),\n );\n props.successCallback();\n onOpenChange(false);\n return;\n }\n toast.error(res.message);\n } catch (e) {\n console.log(\"edit referral code error\", e);\n }\n },\n },\n }}\n >\n <div className=\"oui-mb-6 oui-text-xs oui-text-base-contrast-54\">\n {t(\"affiliate.referralCode.editCodeModal.description\")}\n </div>\n <TextField\n placeholder=\"\"\n fullWidth\n label={t(\"affiliate.referralCode.editCodeModal.label\")}\n onClean={() => {\n setNewCode(\"\");\n }}\n value={newCode}\n onChange={(e) => {\n const _value = e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, \"\");\n setNewCode(_value);\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input:\n \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n maxLength={10}\n minLength={4}\n autoComplete=\"off\"\n helpText=\"\"\n />\n <Flex\n direction={\"column\"}\n justify={\"center\"}\n itemAlign={\"start\"}\n gap={1}\n className=\"oui-mt-3\"\n >\n <Text\n className={cn(\n \"oui-ml-4 oui-list-item oui-list-outside oui-list-disc oui-text-xs oui-text-base-contrast-36 marker:oui-text-3xs\",\n filedError.length ? \"oui-text-danger\" : \"oui-text-success\",\n )}\n >\n {t(\"affiliate.referralCode.editCodeModal.helpText.length\")}\n </Text>\n <Text\n className={cn(\n \"oui-ml-4 oui-list-item oui-list-outside oui-list-disc oui-text-xs oui-text-base-contrast-36 marker:oui-text-3xs\",\n \"oui-text-success\",\n )}\n >\n {t(\"affiliate.referralCode.editCodeModal.helpText.format\")}\n </Text>\n </Flex>\n </SimpleDialog>\n );\n});\n","import { useEffect, useRef, useState } from \"react\";\nimport { cleanStringStyle, useMutation } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n cn,\n Dialog,\n DialogContent,\n DialogTitle,\n Divider,\n Flex,\n Input,\n modal,\n toast,\n useModal,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { ReferralCodeType } from \"./referralCodes.script\";\n\nexport const EditReferralRate = modal.create<{\n code: ReferralCodeType;\n mutate: any;\n}>((props) => {\n const { code, mutate } = props;\n const { visible, hide, resolve, reject, onOpenChange } = useModal();\n const maxRate = new Decimal(code.max_rebate_rate).mul(100);\n const [refereeRebateRate, setRefereeRebateRate] = useState(\n `${new Decimal(code.referee_rebate_rate).mul(100)}`,\n );\n const [referrerRebateRate, setReferrerRebateRate] = useState(\n `${new Decimal(code.referrer_rebate_rate).mul(100)}`,\n );\n const [showError, setShowError] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (inputRef?.current) {\n inputRef.current.focus();\n inputRef.current.setSelectionRange(\n inputRef.current.value.length,\n inputRef.current.value.length,\n );\n }\n }, [inputRef]);\n\n useEffect(() => {\n setRefereeRebateRate(`${new Decimal(code.referee_rebate_rate).mul(100)}`);\n setReferrerRebateRate(`${new Decimal(code.referrer_rebate_rate).mul(100)}`);\n }, [code]);\n\n const [editRate, { error, isMutating }] = useMutation(\n \"/v1/referral/edit_split\",\n \"POST\",\n );\n\n const onClickConfirm = async () => {\n try {\n const r1 = Number.parseFloat(refereeRebateRate);\n const r2 = Number.parseFloat(referrerRebateRate);\n\n await editRate({\n referral_code: code.code,\n referee_rebate_rate: r1 / 100,\n referrer_rebate_rate: r2 / 100,\n });\n toast.success(t(\"affiliate.referralRate.editRateModal.success\"));\n mutate();\n hide();\n } catch (e) {\n // @ts-ignore\n toast.error(e?.message || e || \"\");\n }\n };\n\n return (\n <Dialog open={visible} onOpenChange={onOpenChange}>\n <DialogContent\n className=\"oui-px-6 oui-max-w-[320px] oui-bg-base-8 oui-shadow-[0px_12px_20px_0px_rgba(0,0,0,0.25)]\"\n closable\n >\n <DialogTitle>\n <div className=\"oui-my-3\">\n {t(\"affiliate.referralRate.editRateModal.title\")}\n </div>\n <Divider />\n </DialogTitle>\n\n <div className=\"oui-mt-3 oui-h-full oui-flex oui-flex-col oui-justify-end\">\n <div className=\"oui-text-xs oui-text-base-contrast-54\">\n {t(\"affiliate.referralRate.editRateModal.description\")}\n </div>\n <div className=\"oui-text-xs oui-text-base-contrast-80 oui-mt-2 oui-flex\">\n {t(\"affiliate.referralRate.editRateModal.label\")}\n <div className=\"oui-text-warning-darken oui-pl-1\">{`${new Decimal(\n code.max_rebate_rate,\n )\n .mul(100)\n .toFixed(0, Decimal.ROUND_DOWN)}%`}</div>\n </div>\n\n <div className=\"oui-text-2xs oui-mt-6 oui-text-base-contrast-80\">\n {t(\"affiliate.referralRate.editRateModal.label.you\")}\n </div>\n <Input\n ref={inputRef}\n containerClassName=\"oui-h-[40px] oui-mt-3 oui-bg-base-700 oui-outline oui-outline-1 oui-outline-base-contrast-12 focus-within:oui-outline-primary-darken\"\n placeholder=\"Enter code\"\n type=\"text\"\n inputMode=\"decimal\"\n autoComplete=\"off\"\n value={referrerRebateRate}\n onChange={(e) => {\n const text = cleanStringStyle(e.target.value);\n const rate = Number.parseFloat(text);\n setReferrerRebateRate(text);\n if (!Number.isNaN(rate)) {\n setRefereeRebateRate(\n `${maxDecimal(new Decimal(0), maxRate.sub(rate))}`,\n );\n setShowError(maxRate.sub(rate) < new Decimal(0));\n } else {\n setRefereeRebateRate(\"\");\n setReferrerRebateRate(\"\");\n }\n }}\n suffix={\n <div className=\"oui-px-3 oui-text-base-contrast-54 oui-text-base\">\n %\n </div>\n }\n color={showError ? \"danger\" : undefined}\n />\n\n <div className=\"oui-text-2xs oui-mt-6 oui-text-base-contrast-80\">\n {t(\"affiliate.referralRate.editRateModal.label.referee\")}\n </div>\n <Input\n containerClassName=\"oui-h-[40px] oui-mt-3 oui-bg-base-700 oui-outline oui-outline-1 oui-outline-base-contrast-12 focus-within:oui-outline-primary-darken\"\n placeholder=\"Enter code\"\n type=\"text\"\n inputMode=\"decimal\"\n autoComplete=\"off\"\n autoFocus={false}\n value={refereeRebateRate}\n onChange={(e) => {\n const text = cleanStringStyle(e.target.value);\n const rate = Number.parseFloat(text);\n setRefereeRebateRate(text);\n if (!Number.isNaN(rate)) {\n setReferrerRebateRate(\n `${maxDecimal(new Decimal(0), maxRate.sub(rate))}`,\n );\n setShowError(maxRate.sub(rate) < new Decimal(0));\n } else {\n setRefereeRebateRate(\"\");\n setReferrerRebateRate(\"\");\n }\n }}\n suffix={\n <div className=\"oui-px-3 oui-text-base-contrast-54 oui-text-base\">\n %\n </div>\n }\n color={showError ? \"danger\" : undefined}\n />\n\n {showError && (\n <div className=\"oui-text-danger oui-text-xs oui-mt-8 oui-text-center oui-px-4\">\n {t(\"affiliate.referralRate.editRateModal.helpText.max\")}\n </div>\n )}\n\n <Flex width={\"100%\"} justify={\"center\"}>\n <Button\n id=\"referral_bind_referral_code_btn\"\n disabled={\n refereeRebateRate.length === 0 ||\n referrerRebateRate.length === 0 ||\n showError\n }\n loading={isMutating}\n className={cn(\n \"oui-mt-8 oui-mb-4 oui-w-[154px]\",\n showError && \"oui-mt-3\",\n )}\n onClick={(e) => {\n e.stopPropagation();\n onClickConfirm();\n }}\n >\n {t(\"common.confirm\")}\n </Button>\n </Flex>\n </div>\n </DialogContent>\n </Dialog>\n );\n});\n\nfunction maxDecimal(a: Decimal, b: Decimal) {\n return a > b ? a : b;\n}\n","import { useReferralCodesScript } from \"./referralCodes.script\";\nimport { ReferralCodes } from \"./referralCodes.ui\";\n\nexport const ReferralCodesWidget = () => {\n const state = useReferralCodesScript();\n return <ReferralCodes {...state} />;\n};\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { RefferalAPI, useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n DatePicker,\n Divider,\n Flex,\n ListView,\n Statistic,\n TabPanel,\n Column,\n Tabs,\n Text,\n cn,\n} from \"@orderly.network/ui\";\nimport { AuthGuardDataTable } from \"@orderly.network/ui-connector\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { DateRange } from \"../../../utils/types\";\nimport { formatYMDTime } from \"../../../utils/utils\";\nimport { CommissionAndRefereesReturns } from \"./commissionAndReferees.script\";\n\nexport const CommissionAndReferees: FC<CommissionAndRefereesReturns> = (\n props,\n) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-affiliate-commissionAndReferees\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9 oui-tabular-nums\"\n >\n <Tabs defaultValue=\"account\" className=\"oui-w-full\" variant=\"contained\">\n <TabPanel value=\"account\" title={t(\"affiliate.commission\")}>\n <CommissionList {...props} />\n </TabPanel>\n <TabPanel value=\"password\" title={t(\"affiliate.myReferees\")}>\n <RefereesList {...props} />\n </TabPanel>\n </Tabs>\n </Flex>\n );\n};\n\nconst MobileCellItem: FC<{\n title: string;\n value: string | ReactNode;\n align?: \"start\" | \"end\" | undefined;\n className?: string;\n rule?: \"address\" | \"date\";\n formatString?: string;\n prefix?: string;\n}> = (props) => {\n const { title, value, align, className, rule, formatString, prefix } = props;\n return (\n <Statistic\n className={cn(\"oui-flex-1\", className)}\n label={\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">{title}</Text>\n }\n align={align}\n children={\n <Text.formatted\n rule={rule || \"\"}\n // @ts-ignore\n formatString={formatString}\n prefix={prefix}\n className=\"oui-text-base-contrast-80 oui-text-sm oui-mt-[6px]\"\n >\n {value}\n </Text.formatted>\n }\n />\n );\n};\n\nconst CommissionList: FC<CommissionAndRefereesReturns> = (props) => {\n const { t } = useTranslation();\n const isLG = useMediaQuery(\"(max-width: 767px)\");\n\n const columns = useMemo(() => {\n const cols: Column[] = [\n {\n title: `${t(\"affiliate.commission\")} (USDC)`,\n dataIndex: \"referral_rebate\",\n render: (value) => (\n <Text>\n {commifyOptional(value, {\n fix: 6,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n ),\n width: 216,\n },\n {\n title: `${t(\"affiliate.referralVol\")} (USDC)`,\n dataIndex: \"volume\",\n render: (value) => (\n <Text>\n {commifyOptional(value, {\n fix: 2,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n ),\n width: 216,\n },\n {\n title: t(\"affiliate.commission.column.activeUsers\"),\n dataIndex: \"daily_traded_referral\",\n render: (value) => <Text>{value}</Text>,\n width: 216,\n },\n {\n title: t(\"common.date\"),\n dataIndex: \"date\",\n render: (value) => formatYMDTime(value),\n width: 216,\n },\n ];\n\n return cols;\n }, [t]);\n\n const body = useMemo(() => {\n if (isLG) {\n return (\n <ListView<\n RefferalAPI.ReferralRebateSummary,\n RefferalAPI.ReferralRebateSummary[]\n >\n className=\"oui-max-h-[200px] oui-w-full\"\n dataSource={props.commission.data}\n loadMore={props.commission.loadMore}\n isLoading={props.commission.isLoading}\n renderItem={(e) => {\n return (\n <div>\n <Flex direction={\"row\"} width={\"100%\"}>\n <MobileCellItem\n title={t(\"affiliate.commission\")}\n value={commifyOptional(e.referral_rebate, {\n fix: 6,\n fallback: \"0\",\n padEnd: true,\n })}\n prefix=\"$\"\n />\n <MobileCellItem\n title={t(\"affiliate.referralVol\")}\n value={commifyOptional(e.volume, {\n fix: 2,\n fallback: \"0\",\n padEnd: true,\n })}\n prefix=\"$\"\n />\n <MobileCellItem\n title={t(\"affiliate.commission.column.activeUsers\")}\n value={e.daily_traded_referral}\n />\n <MobileCellItem\n title={t(\"common.date\")}\n value={e.date}\n rule=\"date\"\n formatString=\"yyyy-MM-dd\"\n align=\"end\"\n />\n </Flex>\n <Divider className=\"oui-mt-3 oui-w-full\" />\n </div>\n );\n }}\n />\n );\n }\n\n return (\n <AuthGuardDataTable\n bordered\n columns={columns}\n loading={props.commission.isLoading}\n ignoreLoadingCheck={true}\n dataSource={props.commission.data}\n pagination={props.commission.pagination}\n onRow={(record) => {\n return {\n className: \"oui-h-[41px]\",\n };\n }}\n />\n );\n }, [isLG, props.commission]);\n\n return (\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <DateFiler\n value={props.commission.dateRange}\n setValue={props.commission.setDateRange}\n />\n {body}\n </Flex>\n );\n};\n\nconst RefereesList: FC<CommissionAndRefereesReturns> = (props) => {\n const { t } = useTranslation();\n\n const isLG = useMediaQuery(\"(max-width: 767px)\");\n\n const columns = useMemo(() => {\n const cols: Column[] = [\n {\n title: t(\"affiliate.referees.column.refereeAddress\"),\n dataIndex: \"user_address\",\n render: (value) => (\n <Text.formatted rule={\"address\"}>{value}</Text.formatted>\n ),\n className: \"oui-w-1/5\",\n },\n {\n title: t(\"affiliate.referralCode\"),\n dataIndex: \"referral_code\",\n // render: (value) => value,\n className: \"oui-w-1/5\",\n },\n {\n title: `${t(\"affiliate.referees.column.totalCommission\")} (USDC)`,\n dataIndex: \"referral_rebate\",\n render: (value) => (\n <Text>\n {commifyOptional(value, { fix: 6, prefix: \"$\", padEnd: true })}\n </Text>\n ),\n className: \"oui-w-1/5\",\n },\n {\n title: `${t(\"affiliate.referees.column.totalVol\")} (USDC)`,\n dataIndex: \"volume\",\n render: (value) => (\n <Text>\n {commifyOptional(value, { fix: 2, prefix: \"$\", padEnd: true })}\n </Text>\n ),\n className: \"oui-w-1/5\",\n },\n {\n title: t(\"affiliate.referees.column.invitationTime\"),\n dataIndex: \"code_binding_time\",\n render: (value) => (\n <Text.formatted\n rule={\"date\"}\n formatString=\"yyyy-MM-dd\"\n children={value}\n />\n ),\n className: \"oui-w-1/5\",\n },\n ];\n\n return cols;\n }, [t]);\n\n const body = useMemo(() => {\n if (isLG) {\n return (\n <ListView<RefferalAPI.RefereeInfoItem, RefferalAPI.RefereeInfoItem[]>\n className=\"oui-w-full oui-max-h-[200px]\"\n dataSource={props.referees.data}\n loadMore={props.referees.loadMore}\n isLoading={props.referees.isLoading}\n renderItem={(e, index) => {\n return (\n <Flex\n key={index}\n direction={\"column\"}\n gap={3}\n className=\"oui-border-b-2 oui-border-line-6 oui-pb-3\"\n >\n <Flex direction={\"row\"} width={\"100%\"}>\n <MobileCellItem\n title={t(\"affiliate.referralCode\")}\n value={e.referral_code}\n />\n <MobileCellItem\n title={`${t(\n \"affiliate.referees.column.totalCommission\",\n )} (USDC)`}\n value={commifyOptional(e.referral_rebate, {\n fix: 6,\n prefix: \"$\",\n padEnd: true,\n })}\n className=\"oui-min-w-[102px]\"\n />\n <MobileCellItem\n title={t(\"affiliate.referees.column.totalVol\")}\n value={commifyOptional(e.volume, {\n fix: 2,\n prefix: \"$\",\n padEnd: true,\n })}\n align=\"end\"\n />\n </Flex>\n <Flex direction={\"row\"} pt={3} gap={3} width={\"100%\"}>\n <MobileCellItem\n title={t(\"affiliate.referees.column.refereeAddress\")}\n value={e.user_address}\n rule=\"address\"\n />\n <MobileCellItem\n title={t(\"affiliate.referees.column.invitationTime\")}\n value={e.code_binding_time}\n align=\"end\"\n rule=\"date\"\n formatString=\"yyyy-MM-dd\"\n />\n </Flex>\n {/* <Divider /> */}\n </Flex>\n );\n }}\n />\n );\n }\n\n return (\n <AuthGuardDataTable\n bordered\n loading={props.referees.isLoading}\n ignoreLoadingCheck={true}\n columns={columns}\n dataSource={props.referees.data}\n pagination={props.referees.pagination}\n onRow={(record) => {\n return {\n className: \"oui-h-[41px]\",\n };\n }}\n />\n );\n }, [isLG, props.referees]);\n\n return (\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n {/* <DateFiler\n value={props.referees.dateRange}\n setValue={props.referees.setDateRange}\n /> */}\n {body}\n </Flex>\n );\n};\n\nconst DateFiler: FC<{\n value?: DateRange;\n setValue: any;\n}> = (props) => {\n return (\n <Flex width={\"100%\"} height={49} className=\"oui-border-b oui-border-line-6\">\n <div>\n <DatePicker.range\n size=\"xs\"\n value={props.value}\n onChange={(range) => {\n props.setValue(range);\n }}\n max={90}\n disabled={{\n after: new Date(),\n }}\n />\n </div>\n </Flex>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { DateRange } from \"../../../utils/types\";\nimport { format, subDays } from \"date-fns\";\nimport {\n RefferalAPI,\n useMediaQuery,\n useRefereeInfo,\n useReferralRebateSummary,\n} from \"@orderly.network/hooks\";\nimport { PaginationMeta, usePagination } from \"@orderly.network/ui\";\n\nexport type ListReturns<T> = {\n data: T;\n dateRange?: DateRange;\n setDateRange: React.Dispatch<React.SetStateAction<DateRange | undefined>>;\n isLoading?: boolean;\n loadMore?: () => void;\n pagination: PaginationMeta;\n};\n\nexport type CommissionAndRefereesReturns = {\n commission: ListReturns<RefferalAPI.ReferralRebateSummary[] | undefined>;\n referees: ListReturns<RefferalAPI.RefereeInfoItem[] | undefined>;\n};\n\nexport const useCommissionAndRefereesScript =\n (): CommissionAndRefereesReturns => {\n const commission = useCommissionDataScript();\n const referees = useRefereesDataScript();\n\n return {\n commission,\n referees,\n };\n };\n\nconst useCommissionDataScript = (): ListReturns<\n RefferalAPI.ReferralRebateSummary[] | undefined\n> => {\n const [commissionRange, setCommissionRange] = useState<DateRange | undefined>(\n {\n from: subDays(new Date(), 90),\n to: subDays(new Date(), 1),\n }\n );\n\n const isLG = useMediaQuery(\"(max-width: 767px)\");\n\n const { page, pageSize, setPage, parsePagination } = usePagination();\n\n const [commissionData, { refresh, isLoading, loadMore, meta }] =\n useReferralRebateSummary({\n startDate:\n commissionRange?.from !== undefined\n ? format(commissionRange.from, \"yyyy-MM-dd\")\n : undefined,\n endDate:\n commissionRange?.to !== undefined\n ? format(commissionRange.to, \"yyyy-MM-dd\")\n : undefined,\n size: pageSize,\n page: !isLG ? page : undefined,\n });\n\n useEffect(() => {\n refresh();\n }, [commissionRange]);\n\n // const loadMore = () => {\n // setPage(page + 1);\n // };\n\n const pagination = useMemo(\n () => parsePagination(meta),\n [parsePagination, meta]\n );\n\n useEffect(() => {\n setPage(1);\n }, [commissionRange]);\n\n return {\n data: commissionData || undefined,\n pagination,\n dateRange: commissionRange,\n setDateRange: setCommissionRange,\n isLoading,\n loadMore,\n };\n};\n\nconst useRefereesDataScript = (): ListReturns<\n RefferalAPI.RefereeInfoItem[] | undefined\n> => {\n const [commissionRange, setCommissionRange] = useState<DateRange | undefined>(\n {\n from: subDays(new Date(), 90),\n to: subDays(new Date(), 1),\n }\n );\n\n const isLG = useMediaQuery(\"(max-width: 767px)\");\n\n const { page, pageSize, setPage, parsePagination } = usePagination();\n\n const [commissionData, { refresh, isLoading, loadMore, meta }] =\n useRefereeInfo({\n startDate:\n commissionRange?.from !== undefined\n ? format(commissionRange.from, \"yyyy-MM-dd\")\n : undefined,\n endDate:\n commissionRange?.to !== undefined\n ? format(commissionRange.to, \"yyyy-MM-dd\")\n : undefined,\n size: pageSize,\n page: !isLG ? page : undefined,\n sort: \"descending_code_binding_time\",\n });\n\n useEffect(() => {\n refresh();\n }, [commissionRange]);\n\n // const loadMore = () => {\n // setPage(page + 1);\n // };\n\n const pagination = useMemo(\n () => parsePagination(meta),\n [parsePagination, meta]\n );\n\n useEffect(() => {\n setPage(1);\n }, [commissionRange]);\n\n return {\n data: commissionData || undefined,\n pagination,\n dateRange: commissionRange,\n setDateRange: setCommissionRange,\n isLoading,\n loadMore,\n };\n};\n","import { useCommissionAndRefereesScript } from \"./commissionAndReferees.script\";\nimport { CommissionAndReferees } from \"./commissionAndReferees.ui\";\n\nexport const CommissionAndRefereesWidget = () => {\n const state = useCommissionAndRefereesScript();\n return <CommissionAndReferees {...state} />;\n};\n","import { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { BecomeAffiliateWidget } from \"./becomeAffiliate\";\nimport { TopWidget } from \"./top\";\nimport { CardWidget } from \"./card\";\n\nexport const HomePage = () => {\n return (\n <Flex\n id=\"oui-affiliate-home-page\"\n className={cn(\n \"oui-h-lvw \",\n // padding\n // \"oui-p-4 lg:oui-p-6 xl:oui-p-3\",\n \"oui-font-semibold\"\n )}\n direction={\"column\"}\n gap={4}\n >\n <TopWidget />\n <CardWidget />\n <BecomeAffiliateWidget />\n </Flex>\n );\n};\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text, cn } from \"@orderly.network/ui\";\nimport { commify } from \"@orderly.network/utils\";\nimport { useReferralContext } from \"../../../provider\";\nimport { BecomeAffiliateReturns } from \"./becomeAffiliate.script\";\n\nexport const BecomeAffiliate: FC<BecomeAffiliateReturns> = (props) => {\n const { t } = useTranslation();\n\n const { generateCode } = useReferralContext();\n\n const applyText = useMemo(() => {\n if (!generateCode) {\n return {\n title: t(\"affiliate.process.step1.title\"),\n desc: t(\"affiliate.process.step1.description\"),\n };\n }\n if (generateCode.requireVolume > 0) {\n return {\n title: t(\"affiliate.process.step1.volumeGt0.title\", {\n requireVolume: generateCode.requireVolume,\n }),\n desc: t(\"affiliate.process.step1.volumeGt0.description\", {\n volume: commify(generateCode.completedVolume ?? 0, 2),\n requireVolume: commify(generateCode.requireVolume),\n }),\n };\n }\n // require volume = 0;\n return {\n title: t(\"affiliate.process.step1.volumeEq0.title\"),\n desc: t(\"affiliate.process.step1.volumeEq0.description\"),\n };\n }, [generateCode, t]);\n\n if (typeof props.overwrite === \"function\") {\n return props.overwrite?.(props.state);\n }\n\n return (\n <Flex\n id=\"oui-affiliate-home-becomeAffiliate\"\n direction={\"column\"}\n gap={6}\n p={6}\n itemAlign={\"center\"}\n r={\"2xl\"}\n className=\"oui-bg-base-9\"\n width={\"100%\"}\n >\n <Text>{t(\"affiliate.process.title\")}</Text>\n <Flex className=\"oui-flex oui-flex-col oui-gap-3 lg:oui-w-full lg:oui-flex-row lg:oui-items-stretch\">\n <Item\n icon={<ApplyIcon />}\n title={applyText.title}\n content={applyText.desc}\n />\n <div className=\"oui-shrink lg:oui-flex lg:-oui-rotate-90 lg:oui-flex-row lg:oui-items-center lg:oui-justify-center\">\n <ArrowDownIcon />\n </div>\n <Item\n icon={<ShareIcon />}\n title={t(\"affiliate.process.step2.title\")}\n content={t(\"affiliate.process.step2.description\")}\n />\n <div className=\"oui-shrink lg:oui-flex lg:-oui-rotate-90 lg:oui-flex-row lg:oui-items-center lg:oui-justify-center\">\n <ArrowDownIcon />\n </div>\n <Item\n icon={<EarnIcon />}\n title={t(\"affiliate.process.step3.title\")}\n content={t(\"affiliate.process.step3.description\")}\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Item: FC<{\n icon: ReactNode;\n title: string;\n content: string;\n}> = (props) => {\n return (\n <Flex\n className={cn(\n \"oui-flex oui-flex-row oui-gap-3\",\n \"lg:oui-flex-1 lg:oui-flex-col lg:oui-gap-[6px]\",\n )}\n width={\"100%\"}\n >\n <div className=\"oui-shrink-0\">{props.icon}</div>\n <Flex\n className={cn(\n \"oui-flex oui-flex-col oui-items-start oui-h-full oui-justify-between\",\n // lg\n \"lg:oui-items-center lg:oui-justify-start\",\n )}\n >\n <Text className=\"oui-text-sm md:oui-text-base 2xl:oui-text-lg lg:oui-text-center\">\n {props.title}\n </Text>\n <Text className=\"oui-text-2xs oui-text-base-contrast-36 lg:oui-text-center\">\n {props.content}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\nconst ApplyIcon = () => {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"lg:oui-w-[64px] lg:oui-h-[64px] 2xl:oui-w-[80px] 2xl:oui-h-[80px]\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24.941 5.4h-6.682a.6.6 0 0 0-.593.509l-.462 3a.6.6 0 0 0 .593.691h7.606a.6.6 0 0 0 .593-.691l-.462-3a.6.6 0 0 0-.593-.509m-6.682-1.8a2.4 2.4 0 0 0-2.372 2.035l-.462 3a2.4 2.4 0 0 0 2.372 2.765h7.606a2.4 2.4 0 0 0 2.372-2.765l-.462-3A2.4 2.4 0 0 0 24.941 3.6z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path\n d=\"M32.721 28.2c.924-1.6 3.233-1.6 4.157 0l7.275 12.6c.924 1.6-.231 3.6-2.079 3.6H27.525c-1.848 0-3.002-2-2.078-3.6z\"\n fill=\"#335FFC\"\n />\n <path\n d=\"M33.492 38.12H31.56c-.252 0-.426-.276-.336-.535l1.92-5.53a.4.4 0 0 1 .132-.185.34.34 0 0 1 .204-.07h3.24c.255 0 .43.284.333.544l-1.118 3.011h2.104c.31 0 .475.4.27.656l-5.158 6.453c-.251.313-.716.041-.619-.362z\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.4 16.8v2.4h2.4v-2.4zM13.2 15a.6.6 0 0 0-.6.6v4.8a.6.6 0 0 0 .6.6H18a.6.6 0 0 0 .6-.6v-4.8a.6.6 0 0 0-.6-.6z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path\n d=\"M20.4 16.2a.6.6 0 0 1 .6-.6h2.4a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6H21a.6.6 0 0 1-.6-.6zm0 3a.6.6 0 0 1 .6-.6h9a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6h-9a.6.6 0 0 1-.6-.6zm-7.8 5.4a.6.6 0 0 1 .6-.6H30a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6H13.2a.6.6 0 0 1-.6-.6zm0 3.6a.6.6 0 0 1 .6-.6H30a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6H13.2a.6.6 0 0 1-.6-.6zm0 3.6a.6.6 0 0 1 .6-.6h9a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6h-9a.6.6 0 0 1-.6-.6z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.739 6.6H10.2A2.4 2.4 0 0 0 7.8 9v30a2.4 2.4 0 0 0 2.4 2.4h13.84l1.014-1.8H10.2a.6.6 0 0 1-.6-.6V9a.6.6 0 0 1 .6-.6h5.262zm12 1.8H33a.6.6 0 0 1 .6.6v16.47a2.8 2.8 0 0 1 1.8-.205V9A2.4 2.4 0 0 0 33 6.6h-5.538z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n </svg>\n );\n};\n\nconst ShareIcon = () => {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"lg:oui-w-[64px] lg:oui-h-[64px] 2xl:oui-w-[80px] 2xl:oui-h-[80px]\"\n >\n <path d=\"M24 33a9 9 0 1 1-18 0 9 9 0 0 1 18 0\" fill=\"#335FFC\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15 32.4a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6m0 1.8a3.6 3.6 0 1 0 0-7.2 3.6 3.6 0 0 0 0 7.2m-6.578 4.942A4.8 4.8 0 0 1 13.2 34.8h3.6a4.8 4.8 0 0 1 4.778 4.342 9 9 0 0 1-1.778 1.473V39.6a3 3 0 0 0-3-3h-3.6a3 3 0 0 0-3 3v1.015a9 9 0 0 1-1.778-1.473\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.2 12a4.2 4.2 0 1 1-8.4 0 4.2 4.2 0 0 1 8.4 0m1.8 0c0 1.37-.459 2.632-1.231 3.642l2.308 2.308a7.76 7.76 0 0 1 4.023-1.7v-.764A3.602 3.602 0 0 1 24 8.4a3.6 3.6 0 0 1 .9 7.087v.764c1.48.17 2.833.754 3.942 1.633l2.326-2.326a6 6 0 1 1 1.273 1.273l-2.326 2.326a7.76 7.76 0 0 1 1.634 3.943h.764a3.602 3.602 0 0 1 7.087.9 3.6 3.6 0 0 1-7.087.9h-.764a7.76 7.76 0 0 1-1.699 4.023l2.308 2.308a6 6 0 1 1-1.25 1.295l-2.347-2.347a7.8 7.8 0 0 1-3.05 1.433 11 11 0 0 0-.377-1.76 6 6 0 1 0-7.185-7.185q-.855-.261-1.76-.379a7.8 7.8 0 0 1 1.432-3.049l-2.347-2.347A6 6 0 1 1 18 12m7.8 0a1.8 1.8 0 1 1-3.6 0 1.8 1.8 0 0 1 3.6 0M36 25.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6m0-9.6a4.2 4.2 0 1 0 0-8.4 4.2 4.2 0 0 0 0 8.4M40.2 36a4.2 4.2 0 1 1-8.4 0 4.2 4.2 0 0 1 8.4 0\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n </svg>\n );\n};\n\nconst EarnIcon = () => {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"lg:oui-w-[64px] lg:oui-h-[64px] 2xl:oui-w-[80px] 2xl:oui-h-[80px]\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 24a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8m0 1.8a4.2 4.2 0 1 0 0-8.4 4.2 4.2 0 0 0 0 8.4\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path d=\"M45 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0\" fill=\"#335FFC\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M35.1 6.6a.9.9 0 1 1 1.8 0v.437A3 3 0 0 1 39 9.9h-1.8a1.2 1.2 0 1 0-1.2 1.2 3 3 0 0 1 .9 5.863v.437a.9.9 0 0 1-1.8 0v-.437A3 3 0 0 1 33 14.1h1.8a1.2 1.2 0 1 0 1.2-1.2 3 3 0 0 1-.9-5.863z\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M40.2 23.7a.9.9 0 0 1 1.8 0v.6q0 .045-.004.086c-.197 9.351-7.525 16.948-16.765 17.573l1.205 1.205a.9.9 0 1 1-1.272 1.272l-2.7-2.7a.9.9 0 0 1 0-1.272l2.7-2.7a.9.9 0 1 1 1.272 1.272l-1.11 1.11c8.325-.674 14.87-7.642 14.874-16.14zM21.564 4.836a.9.9 0 1 1 1.272-1.272l2.7 2.7a.9.9 0 0 1 0 1.272l-2.7 2.7a.9.9 0 1 1-1.272-1.272l1.11-1.11C14.347 8.528 7.8 15.5 7.8 24v.3a.9.9 0 1 1-1.8 0v-.6l.004-.086C6.201 14.263 13.53 6.666 22.77 6.042z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 11.4q.615 0 1.213.058a11 11 0 0 0 .061 1.816Q24.647 13.2 24 13.2c-5.965 0-10.8 4.835-10.8 10.8 0 2.898 1.142 5.53 3 7.47a4.8 4.8 0 0 1 4.8-4.79h6a4.8 4.8 0 0 1 4.8 4.789c1.858-1.94 3-4.572 3-7.47q0-.647-.074-1.274a11 11 0 0 0 1.816.06q.057.6.058 1.214c0 6.959-5.641 12.6-12.6 12.6S11.4 30.959 11.4 24 17.041 11.4 24 11.4m6 21.581v-1.5a3 3 0 0 0-3-3h-6a3 3 0 0 0-3 3v1.5a10.75 10.75 0 0 0 6 1.819c2.22 0 4.284-.67 6-1.819\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n </svg>\n );\n};\n\nconst ArrowDownIcon = () => {\n return (\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5048 4.00806C8.8728 4.00806 9.1708 4.30626 9.1708 4.67406C9.1708 4.99259 9.1708 8.71739 9.1708 9.71072L11.1688 7.73339L12.1055 8.67005L8.98346 11.8127C8.85346 11.9434 8.6788 12.0081 8.50413 12.0081C8.33013 12.0081 8.15612 11.9427 8.02612 11.8127L4.90413 8.67005L5.8408 7.73339L7.83881 9.71072C7.83881 8.71739 7.83881 4.99259 7.83881 4.67406C7.83881 4.30626 8.1368 4.00806 8.5048 4.00806Z\"\n fill=\"#608CFF\"\n />\n </svg>\n );\n};\n","import {\n BuildNode,\n ReferralContextReturns,\n useReferralContext,\n} from \"../../../provider\";\n\nexport type BecomeAffiliateReturns = {\n state: ReferralContextReturns;\n overwrite?: BuildNode;\n};\n\nexport const useBecomeAffiliateScript = (): BecomeAffiliateReturns => {\n const state = useReferralContext();\n\n return {\n overwrite: state.overwrite?.ref?.step,\n state,\n };\n};\n","import { useBecomeAffiliateScript } from \"./becomeAffiliate.script\";\nimport { BecomeAffiliate } from \"./becomeAffiliate.ui\";\n\nexport const BecomeAffiliateWidget = () => {\n const state = useBecomeAffiliateScript();\n return <BecomeAffiliate {...state} />;\n};\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Title: React.FC = () => {\n const { t } = useTranslation();\n return (\n <div\n id=\"oui-affiliate-home-title\"\n className=\"oui-text-center oui-text-3xl oui-font-bold md:oui-text-3xl lg:oui-text-4xl xl:oui-text-5xl\"\n >\n {t(\"affiliate.page.title\")}\n </div>\n );\n};\n","import React from \"react\";\nimport { Title } from \"./title.ui\";\n\nexport const TitleWidget: React.FC = () => {\n return <Title />;\n};\n","import { FC } from \"react\";\nimport { SubtitleReturns } from \"./subtitle.script\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Subtitle: FC<SubtitleReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-home-subtitle\"\n direction={\"column\"}\n className=\"oui-text-sm md:oui-text-base xl:oui-text-lg oui-text-base-contrast-80 oui-text-center\"\n gap={3}\n >\n <Text>{t(\"affiliate.page.subTitle\")}</Text>\n <Flex\n direction={\"row\"}\n gap={1}\n className=\"oui-text-primary-light oui-fill-primary-light hover:oui-text-primary-darken oui-cursor-pointer oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n onClick={(e) => {\n if (props.onLearnAffiliate) {\n props.onLearnAffiliate?.();\n } else if (props.learnAffiliateUrl) {\n window.open(props.learnAffiliateUrl, \"_blank\");\n }\n }}\n >\n <Text children={t(\"affiliate.page.learnMore\")} />\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.008 7.995c0-.368.298-.666.666-.666H9.71L7.733 5.331l.937-.936 3.143 3.122c.13.13.195.304.195.479a.67.67 0 0 1-.195.478L8.67 11.596l-.937-.937 1.978-1.998H4.674a.666.666 0 0 1-.666-.666\" />\n </svg>\n </Flex>\n </Flex>\n );\n};\n","import { ReactNode } from \"react\";\nimport { RefferalAPI } from \"@orderly.network/hooks\";\nimport { BuildNode, useReferralContext } from \"../../../provider\";\n\nexport type SubtitleReturns = {\n onLearnAffiliate?: () => void;\n learnAffiliateUrl?: string;\n};\n\nexport const useSubtitleScript = (): SubtitleReturns => {\n const state = useReferralContext();\n\n const { onLearnAffiliate, learnAffiliateUrl } = state;\n\n return {\n onLearnAffiliate,\n learnAffiliateUrl,\n };\n};\n","import { useSubtitleScript } from \"./subtitle.script\";\nimport { Subtitle } from \"./subtitle.ui\";\n\nexport const SubtitleWidget = () => {\n const state = useSubtitleScript();\n return <Subtitle {...state} />;\n};\n","import { FC } from \"react\";\nimport { TopReturns } from \"./top.script\";\nimport { TitleWidget } from \"../title\";\nimport { SubtitleWidget } from \"../subtitle\";\nimport { Flex } from \"@orderly.network/ui\";\n\nexport const Top: FC<TopReturns> = (props) => {\n if (props.overwriteTop !== undefined) {\n return props.overwriteTop?.(props.state);\n }\n return (\n <Flex id=\"oui-affiliate-home-top\" direction=\"column\" gap={6}>\n <TitleWidget />\n <SubtitleWidget />\n </Flex>\n );\n};\n","import {\n BuildNode,\n ReferralContextReturns,\n useReferralContext,\n} from \"../../../provider\";\n\nexport type TopReturns = {\n state: ReferralContextReturns;\n overwriteTop?: BuildNode;\n};\n\nexport const useTopScript = (): TopReturns => {\n const state = useReferralContext();\n\n return {\n overwriteTop: state.overwrite?.ref?.top,\n state,\n };\n};\n","import { useTopScript } from \"./top.script\";\nimport { Top } from \"./top.ui\";\n\nexport const TopWidget = () => {\n const state = useTopScript();\n return (\n <Top {...state}/>\n );\n};\n","import { FC } from \"react\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { AsTraderWidget } from \"../asATrader\";\nimport { AsAnAffiliateWidget } from \"../asAnAffilate\";\nimport { CardReturns } from \"./card.script\";\n\nexport const Card: FC<CardReturns> = (props) => {\n if (typeof props.overwrite === \"function\") {\n return props.overwrite?.(props.state);\n }\n return (\n <Flex\n id=\"oui-affiliate-home-card\"\n className=\"oui-flex oui-w-full oui-flex-col oui-items-stretch oui-gap-6 xl:oui-flex-row xl:oui-gap-[36px]\"\n >\n <AsAnAffiliateWidget />\n <AsTraderWidget />\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Button,\n cn,\n Dialog,\n DialogBody,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n Divider,\n Flex,\n inputFormatter,\n Text,\n TextField,\n} from \"@orderly.network/ui\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { ArrowRightIcon } from \"../../../components/arrowRightIcon\";\nimport { USDCIcon } from \"../../../components/usdcIcon\";\nimport { AsTraderReturns } from \"./asTrader.script\";\n\nexport const AsTrader: FC<AsTraderReturns> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex\n id=\"oui-affiliate-home-asTrader\"\n gradient=\"success\"\n r={\"2xl\"}\n p={6}\n gap={6}\n direction={\"column\"}\n angle={180}\n width={\"100%\"}\n justify={\"between\"}\n >\n <Flex\n height={80}\n direction={\"row\"}\n gap={3}\n itemAlign={\"start\"}\n width={\"100%\"}\n justify={\"between\"}\n >\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n justify={\"between\"}\n className=\"oui-h-full\"\n >\n <Text className=\"oui-text-lg md:oui-text-xl lg:oui-text-2xl xl:oui-text-3xl\">\n {props.isTrader\n ? t(\"affiliate.trader\")\n : t(\"affiliate.asTrader.title\")}\n </Text>\n <Text\n className={cn(\n \"oui-text-xs oui-text-base-contrast-54 md:oui-text-sm 2xl:oui-text-base\",\n props.isTrader && \"oui-hidden\",\n )}\n >\n {t(\"affiliate.asTrader.description\")}\n </Text>\n </Flex>\n <div className=\"oui-shrink-0\">\n <Icon />\n </div>\n </Flex>\n <Bottom {...props} />\n </Flex>\n );\n};\n\nconst Icon = () => {\n return (\n <svg\n width=\"72\"\n height=\"72\"\n viewBox=\"0 0 90 90\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"xl:oui-size-[90px] \"\n >\n <path\n d=\"M44.996 7.324c-20.71 0-37.43 16.79-37.5 37.5-.07 20.682 16.806 37.575 37.5 37.617 20.694.04 37.537-17.082 37.5-37.617-.037-20.71-16.79-37.5-37.5-37.5m0 7.5c16.569 0 30 13.433 30 30 0 8.438-3.514 16.043-9.12 21.495-2.762-5.973-8.694-10.245-15.49-10.245h-10.78c-6.791 0-12.706 4.22-15.47 10.197-5.606-5.453-9.14-13.01-9.14-21.447 0-16.567 13.431-30 30-30m0 7.5c-8.284 0-15 6.717-15 15s6.716 15 15 15 15-6.716 15-15-6.716-15-15-15\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n <path\n d=\"M90 71.25C90 81.605 81.605 90 71.25 90S52.5 81.605 52.5 71.25 60.895 52.5 71.25 52.5 90 60.895 90 71.25\"\n fill=\"#005A4F\"\n />\n <path\n d=\"M80.62 75.007c0-.24-.08-.49-.263-.675l-3.487-3.456-1.318 1.318 1.845 1.875H63.745a.938.938 0 0 0 0 1.875h13.652l-1.845 1.875 1.318 1.318 3.487-3.456a.95.95 0 0 0 .263-.674m-.937-7.5a.94.94 0 0 0-.938-.938H65.093l1.846-1.875-1.319-1.318-3.486 3.456a.966.966 0 0 0 0 1.349l3.486 3.456 1.319-1.318-1.846-1.875h13.652c.518 0 .938-.42.938-.937\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n\nconst Bottom: FC<AsTraderReturns> = (props) => {\n const { t } = useTranslation();\n\n const content = () => {\n if (props.isTrader && !props.wrongNetwork) {\n const totalReferrerRebate =\n props.referralInfo?.referee_info?.total_referee_rebate;\n return (\n <>\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={2}>\n <Text className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\">\n {t(\"affiliate.commission\")} {<Text intensity={36}>(USDC)</Text>}\n </Text>\n <Flex direction={\"row\"} gap={1}>\n <USDCIcon />\n <Text className=\"oui-text-base md:oui-text-lg lg:oui-text-xl xl:oui-text-2xl\">\n {commifyOptional(totalReferrerRebate, {\n fix: 2,\n fallback: \"0\",\n })}\n </Text>\n </Flex>\n </Flex>\n <Flex\n direction={\"row\"}\n gap={1}\n justify={\"end\"}\n itemAlign={\"center\"}\n className=\"oui-cursor-pointer\"\n onClick={props?.onEnterTraderPage}\n >\n <Text className=\"oui-text-sm md:oui-text-base xl:oui-text-lg\">\n {t(\"affiliate.enter\")}\n </Text>\n <ArrowRightIcon className=\"md:oui-size-[18px] lg:oui-size-[20px] xl:oui-size-[24px]\" />\n </Flex>\n </>\n );\n }\n\n return <EntryCode {...props} />;\n };\n\n return (\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n width={\"100%\"}\n itemAlign={\"end\"}\n >\n {content()}\n </Flex>\n );\n};\n\nconst EntryCode: FC<AsTraderReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Dialog open={props.open} onOpenChange={props.setOpen}>\n <DialogTrigger>\n <Button variant=\"contained\" color=\"light\">\n {t(\"affiliate.asTrader.button\")}\n </Button>\n </DialogTrigger>\n <DialogContent className=\"oui-w-[320px] oui-font-semibold\">\n <DialogHeader>\n <DialogTitle>{t(\"affiliate.referralCode.dialog.title\")}</DialogTitle>\n </DialogHeader>\n <Divider />\n <DialogBody>\n <Text size=\"sm\" intensity={54}>\n {t(\"affiliate.referralCode.dialog.description\")}\n </Text>\n\n <TextField\n className=\"oui-mt-4 oui-w-full\"\n placeholder={t(\"affiliate.referralCode\")}\n value={props.code}\n onChange={(e) => {\n const _value = e.target.value\n .toUpperCase()\n .replace(/[^A-Z0-9]/g, \"\");\n props.setCode(_value);\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter(\n (value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n },\n ),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClean={() => {\n props.setCode(\"\");\n }}\n label={t(\"affiliate.referralCode.label\")}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-54\",\n }}\n helpText={\n !props.isExist && !props.isLoading && props.code.length > 0\n ? t(\"affiliate.referralCode.notExist\")\n : undefined\n }\n color={\n !props.isExist && !props.isLoading && props.code.length > 0\n ? \"danger\"\n : undefined\n }\n />\n\n <Flex direction={\"column\"} gapY={3} mt={6}>\n {props.warningMessage && (\n <Text size=\"2xs\" className=\"oui-text-warning-darken\">\n {props.warningMessage}\n </Text>\n )}\n <AuthGuard buttonProps={{ size: \"md\", fullWidth: true }}>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"md\"\n className=\"oui-px-[40px]\"\n fullWidth\n disabled={props.code.length < 4 || !props.isExist}\n onClick={(e) => {\n e.stopPropagation();\n props.onClickConfirm();\n }}\n >\n {t(\"common.confirm\")}\n </Button>\n </AuthGuard>\n </Flex>\n </DialogBody>\n </DialogContent>\n </Dialog>\n );\n};\n","import { FC } from \"react\";\n\nexport const ArrowRightIcon: FC<{\n className?: string;\n}> = (props) => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"white\"\n fillOpacity=\"0.98\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n >\n <path d=\"M4.00806 7.9952C4.00806 7.6272 4.30626 7.3292 4.67406 7.3292C4.99259 7.3292 8.71739 7.3292 9.71072 7.3292L7.73339 5.3312L8.67005 4.39453L11.8127 7.51654C11.9434 7.64654 12.0081 7.8212 12.0081 7.99587C12.0081 8.16987 11.9427 8.34388 11.8127 8.47388L8.67005 11.5959L7.73339 10.6592L9.71072 8.66119C8.71739 8.66119 4.99259 8.66119 4.67406 8.66119C4.30626 8.66119 4.00806 8.3632 4.00806 7.9952Z\" />\n </svg>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport {\n useAccount,\n useCheckReferralCode,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { toast, useScreen } from \"@orderly.network/ui\";\nimport { AuthStatusEnum, useAuthStatus } from \"@orderly.network/ui-connector\";\nimport { TabTypes, useReferralContext } from \"../../../provider\";\n\nexport const useAsTraderScript = () => {\n const { t } = useTranslation();\n\n const {\n isTrader,\n referralInfo,\n setShowHome,\n bindReferralCodeState,\n setTab,\n mutate,\n } = useReferralContext();\n\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const { state } = useAccount();\n\n const onEnterTraderPage = () => {\n setTab(TabTypes.trader);\n setShowHome(false);\n };\n\n const [code, setCode] = useState(\"\");\n const [open, setOpen] = useState(false);\n\n const {\n isExist,\n error: checkCodeError,\n isLoading,\n } = useCheckReferralCode(code);\n\n const hide = () => {\n setOpen(false);\n };\n\n const [bindCode, { error, isMutating }] = useMutation(\n \"/v1/referral/bind\",\n \"POST\",\n );\n\n const onClickConfirm = async () => {\n try {\n await bindCode({ referral_code: code });\n toast.success(t(\"affiliate.referralCode.bound\"));\n mutate();\n if (bindReferralCodeState) {\n bindReferralCodeState(true, null, hide, { tab: 1 });\n } else {\n hide();\n }\n } catch (e: any) {\n let errorText = `${e}`;\n if (\"message\" in e) {\n errorText = e.message;\n }\n\n if (\"referral code not exist\" === errorText) {\n errorText = t(\"affiliate.referralCode.notExist\");\n }\n\n if (bindReferralCodeState) {\n toast.error(errorText);\n bindReferralCodeState(false, e, hide, {});\n } else {\n toast.error(errorText);\n }\n }\n };\n\n const { isMobile } = useScreen();\n\n const authStatus = useAuthStatus();\n\n const warningMessage = useMemo(() => {\n const message: { [key in AuthStatusEnum]?: string } = {\n [AuthStatusEnum.ConnectWallet]: t(\"affiliate.connectWallet.tooltip\"),\n [AuthStatusEnum.CreateAccount]: t(\"affiliate.createAccount.tooltip\"),\n [AuthStatusEnum.WrongNetwork]: t(\"connector.wrongNetwork.tooltip\"),\n };\n return message[authStatus];\n }, [authStatus]);\n\n return {\n isTrader,\n isLoading,\n referralInfo,\n onEnterTraderPage,\n code,\n setCode,\n open,\n setOpen,\n onClickConfirm,\n isExist,\n wrongNetwork,\n isMobile,\n warningMessage,\n };\n};\n\nexport type AsTraderReturns = ReturnType<typeof useAsTraderScript>;\n","import { useAsTraderScript } from \"./asTrader.script\";\nimport { AsTrader } from \"./asTrader.ui\";\n\nexport const AsTraderWidget = () => {\n const state = useAsTraderScript();\n return <AsTrader {...state} />;\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Button, cn, Flex, Text } from \"@orderly.network/ui\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { ArrowRightIcon } from \"../../../components/arrowRightIcon\";\nimport { USDCIcon } from \"../../../components/usdcIcon\";\nimport { AsAnAffiliateReturns } from \"./asAnAffiliate.script\";\n\nexport const AsAnAffiliate: FC<AsAnAffiliateReturns> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex\n id=\"oui-affiliate-home-asAnAffiliate\"\n gradient=\"primary\"\n r={\"2xl\"}\n p={6}\n gap={6}\n direction={\"column\"}\n angle={180}\n width={\"100%\"}\n justify={\"between\"}\n >\n <Flex\n direction={\"row\"}\n gap={3}\n itemAlign={\"start\"}\n width={\"100%\"}\n justify={\"between\"}\n >\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n justify={\"between\"}\n className=\"oui-h-full\"\n >\n <Text className=\"oui-text-lg md:oui-text-xl lg:oui-text-2xl xl:oui-text-3xl\">\n {props.isAffiliate\n ? t(\"common.affiliate\")\n : t(\"affiliate.asAffiliate.title\")}\n </Text>\n <Text\n className={cn(\n \"oui-text-xs oui-text-base-contrast-54 md:oui-text-sm 2xl:oui-text-base\",\n props.isAffiliate && \"oui-hidden\",\n )}\n >\n {t(\"affiliate.asAffiliate.description\")}\n </Text>\n </Flex>\n <div className=\"oui-shrink-0\">\n <Icon />\n </div>\n </Flex>\n <Bottom {...props} />\n </Flex>\n );\n};\n\nconst Icon = () => {\n return (\n <svg\n width=\"72\"\n height=\"72\"\n viewBox=\"0 0 72 72\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"xl:oui-size-[90px]\"\n >\n <path\n d=\"M35.997 5.86c-16.569 0-29.944 13.43-30 30-.056 16.545 13.445 30.06 30 30.093s30.03-13.665 30-30.093c-.03-16.57-13.432-30-30-30m0 6c13.255 0 24 10.746 24 24 0 6.75-2.812 12.834-7.297 17.196-2.209-4.78-6.955-8.196-12.39-8.196h-8.626c-5.432 0-10.164 3.375-12.375 8.157-4.485-4.362-7.312-10.407-7.312-17.157 0-13.254 10.745-24 24-24m0 6c-6.628 0-12 5.373-12 12s5.372 12 12 12c6.627 0 12-5.373 12-12s-5.373-12-12-12\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n <path\n d=\"M72 57c0 8.284-6.716 15-15 15s-15-6.716-15-15 6.716-15 15-15 15 6.716 15 15\"\n fill=\"#1828C3\"\n />\n <path\n d=\"M53.624 51.45a4.125 4.125 0 0 0-4.125 4.125c0 2.388 1.36 4.641 3.61 6.703a21 21 0 0 0 2.414 1.875c.287.194.556.37.797.516.147.089.243.154.304.187a.79.79 0 0 0 .75 0c.061-.033.158-.098.305-.187.24-.147.51-.322.797-.516a21 21 0 0 0 2.414-1.875c2.25-2.062 3.61-4.315 3.61-6.703a4.125 4.125 0 0 0-4.126-4.125c-1.294 0-2.557.705-3.351 1.734-.775-1.047-2.034-1.734-3.399-1.734\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n\nconst Bottom: FC<AsAnAffiliateReturns> = (props) => {\n const { t } = useTranslation();\n\n const content = () => {\n if (props.isAffiliate && !props.wrongNetwork) {\n const totalReferrerRebate =\n props.referralInfo?.referrer_info?.total_referrer_rebate;\n return (\n <>\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={2}>\n <Text className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\">\n {t(\"affiliate.commission\")} {<Text intensity={36}>(USDC)</Text>}\n </Text>\n <Flex direction={\"row\"} gap={1}>\n <USDCIcon />\n <Text className=\"oui-text-base md:oui-text-lg lg:oui-text-xl xl:oui-text-2xl\">\n {commifyOptional(totalReferrerRebate, {\n fix: 2,\n fallback: \"0\",\n })}\n </Text>\n </Flex>\n </Flex>\n\n <Flex\n direction={\"row\"}\n gap={1}\n justify={\"end\"}\n itemAlign={\"center\"}\n className=\"oui-cursor-pointer\"\n onClick={props.onEnterAffiliatePage}\n >\n <Text className=\"oui-text-sm md:oui-text-base xl:oui-text-lg\">\n {t(\"affiliate.enter\")}\n </Text>\n <ArrowRightIcon className=\"md:oui-size-[18px] lg:oui-size-[20px] xl:oui-size-[24px]\" />\n </Flex>\n </>\n );\n }\n\n return (\n <>\n <Button\n variant=\"contained\"\n color=\"light\"\n onClick={props.becomeAnAffiliate}\n >\n {t(\"affiliate.asAffiliate.button\")}\n </Button>\n <Flex\n direction={\"column\"}\n justify={\"between\"}\n className=\"oui-h-full\"\n itemAlign={\"end\"}\n >\n <Text className=\"oui-text-base md:oui-text-lg lg:oui-text-xl 2xl:oui-text-2xl\">\n {t(\"affiliate.upTo\")}\n </Text>\n <Text className=\"oui-text-2xs oui-text-base-contrast-54 md:oui-text-xs 2xl:oui-text-sm\">\n {t(\"affiliate.commission\")}\n </Text>\n </Flex>\n </>\n );\n };\n\n return (\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n width={\"100%\"}\n itemAlign={\"end\"}\n >\n {content()}\n </Flex>\n );\n};\n","import { useAppContext } from \"@orderly.network/react-app\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { TabTypes, useReferralContext } from \"../../../provider\";\n\nexport type AsAnAffiliateReturns = ReturnType<typeof useAsAnAffiliateScript>;\n\nexport const useAsAnAffiliateScript = () => {\n const {\n isAffiliate,\n isLoading,\n referralInfo,\n becomeAnAffiliateUrl,\n setShowHome,\n setTab,\n } = useReferralContext();\n\n const { wrongNetwork } = useAppContext();\n\n const becomeAnAffiliate = () => {\n window.open(becomeAnAffiliateUrl, \"_blank\");\n };\n\n const onEnterAffiliatePage = () => {\n setTab(TabTypes.affiliate);\n setShowHome(false);\n };\n\n const { isMobile } = useScreen();\n\n return {\n isAffiliate,\n isLoading,\n referralInfo,\n onEnterAffiliatePage,\n becomeAnAffiliate,\n wrongNetwork,\n isMobile,\n };\n};\n","import React from \"react\";\nimport { useAsAnAffiliateScript } from \"./asAnAffiliate.script\";\nimport { AsAnAffiliate } from \"./asAnAffiliate.ui\";\n\nexport const AsAnAffiliateWidget: React.FC = () => {\n const state = useAsAnAffiliateScript();\n return <AsAnAffiliate {...state} />;\n};\n","import {\n BuildNode,\n ReferralContextReturns,\n useReferralContext,\n} from \"../../../provider\";\n\nexport type CardReturns = {\n state: ReferralContextReturns;\n overwrite?: BuildNode;\n};\n\nexport const useCardScript = (): CardReturns => {\n const state = useReferralContext();\n\n return {\n overwrite: state.overwrite?.ref?.card,\n state,\n };\n};\n","import { useCardScript } from \"./card.script\";\nimport { Card } from \"./card.ui\";\n\nexport const CardWidget = () => {\n const state = useCardScript();\n return <Card {...state} />;\n};\n","import { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { SummaryWidget } from \"./summary\";\nimport { TitleStatisticWidget } from \"./titleStatistic\";\nimport { RebatesWidget } from \"./rebates\";\nexport const TraderPage = () => {\n return (\n <Flex\n id=\"oui-affiliate-trader-page\"\n className={cn(\n \"oui-h-lvw oui-w-full\",\n // padding\n // \"oui-p-4 lg:oui-p-6 xl:oui-p-3\",\n \"oui-font-semibold\"\n )}\n direction={\"column\"}\n gap={4}\n >\n <Flex\n width={\"100%\"}\n gap={4}\n className=\"oui-flex oui-flex-col xl:oui-flex-row xl:oui-items-stretch\"\n >\n <SummaryWidget />\n <TitleStatisticWidget />\n </Flex>\n <RebatesWidget />\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { Button, Flex, Select, Text } from \"@orderly.network/ui\";\nimport { SummaryReturns } from \"./summary.script\";\nimport { USDCIcon } from \"../../../components/usdcIcon\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Summary: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-trader-summary\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n height={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9 xl:oui-flex-1\"\n >\n <Title {...props} />\n <Rebate className=\"md:oui-hidden\" {...props} />\n <Flex direction={\"column\"} gap={3} width={\"100%\"} className=\"md:oui-mt-3\">\n <SummaryFilter {...props} />\n <CommissionData {...props} />\n </Flex>\n <Row title={`${t(\"affiliate.trader.tradingVol\")} (USDC)`} {...props} />\n </Flex>\n );\n};\n\nconst Title: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} width={\"100%\"} gap={3}>\n <Flex direction={\"row\"} gap={3} className=\"oui-flex-1\">\n <Text className=\"oui-text-lg\">\n {t(\"affiliate.trader.yourReferrer\")}\n </Text>\n <Button\n color=\"secondary\"\n size=\"sm\"\n className=\"oui-text-primary-light oui-text-2xs md:oui-text-xs 2xl:oui-text-sm oui-bg-base-6\"\n >\n {props.code}\n </Button>\n </Flex>\n <Rebate\n className=\"oui-hidden md:oui-flex md:oui-flex-shrink md:oui-w-fit\"\n {...props}\n />\n </Flex>\n );\n};\n\nconst Rebate: FC<SummaryReturns & { className?: string }> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} width={\"100%\"} gap={2} className={props.className}>\n <Text\n intensity={54}\n className=\"oui-text-sm md:oui-text-base 2xl:oui-text-lg\"\n >\n {`${t(\"affiliate.trader.rebate\")}:`}\n </Text>\n <Text.gradient\n color=\"brand\"\n className=\"oui-text-lg md:oui-text-xl 2xl:oui-text-2xl\"\n >\n {props.rebateText}\n </Text.gradient>\n </Flex>\n );\n};\n\nconst SummaryFilter: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} width={\"100%\"} justify={\"between\"} gap={3}>\n <Text className=\"oui-text-sm\">{t(\"affiliate.summary\")}</Text>\n <div>\n <Select.options\n size={\"xs\"}\n value={props.period}\n onValueChange={props.onPeriodChange}\n options={props.periodTypes}\n />\n </div>\n </Flex>\n );\n};\n\nconst CommissionData: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n gradient=\"success\"\n angle={180}\n r=\"xl\"\n py={4}\n px={6}\n width={\"100%\"}\n direction={\"column\"}\n gap={3}\n >\n <Text intensity={54} className=\"oui-text-base 2xl:oui-text-lg\">\n {`${t(\"affiliate.trader.rebates\")} (USDC)`}\n </Text>\n <Flex\n direction={\"row\"}\n gap={3}\n className=\"oui-text-xl md:oui-text-2xl xl:oui-text-3xl\"\n >\n <USDCIcon className=\"md:oui-w-[24px] md:oui-h-[24px] lg:oui-w-[28px] lg:oui-h-[28px] \" />\n <Text>{commifyOptional(props.rebates, { fix: 2, fallback: \"0\" })}</Text>\n </Flex>\n </Flex>\n );\n};\n\nconst Row: FC<\n SummaryReturns & {\n title: string;\n }\n> = (props) => {\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text\n intensity={54}\n className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n >\n {props.title}\n </Text>\n <Text className=\"oui-text-xs md:oui-text-sm xl:oui-text-base\">\n {commifyOptional(props.vol, { fix: 2, fallback: \"0\" })}\n </Text>\n </Flex>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useReferralContext } from \"../../../provider\";\nimport { SummaryFilter } from \"../../../utils/types\";\n\nexport type SummaryReturns = {\n period: string;\n periodTypes: { label: string; value: string }[];\n onPeriodChange: (item: string) => void;\n rebates: number;\n vol?: number;\n code?: string;\n rebateText: string;\n};\n\nexport const useSummaryScript = (): SummaryReturns => {\n const { t } = useTranslation();\n const [period, setPeriod] = useState<SummaryFilter>(\"All\");\n\n const periodTypes: {\n label: SummaryFilter;\n value: SummaryFilter;\n }[] = [\n { label: t(\"common.all\"), value: \"All\" },\n { label: t(\"common.select.1d\"), value: \"1D\" },\n { label: t(\"common.select.7d\"), value: \"7D\" },\n { label: t(\"common.select.30d\"), value: \"30D\" },\n ];\n\n const { referralInfo, userVolume } = useReferralContext();\n\n const rebates = useMemo(() => {\n if (!referralInfo) return 0;\n //\n switch (period) {\n case \"All\":\n return referralInfo.referee_info.total_referee_rebate;\n case \"1D\":\n return referralInfo.referee_info[\"1d_referee_rebate\"];\n case \"7D\":\n return referralInfo.referee_info[\"7d_referee_rebate\"];\n case \"30D\":\n return referralInfo.referee_info[\"30d_referee_rebate\"];\n }\n }, [referralInfo, period]);\n\n const vol = useMemo(() => {\n if (!userVolume) return undefined;\n switch (period) {\n case \"All\":\n return userVolume.all_volume;\n case \"1D\":\n return userVolume[\"1d_volume\"];\n case \"7D\":\n return userVolume[\"7d_volume\"];\n case \"30D\":\n return userVolume[\"30d_volume\"];\n }\n }, [userVolume, period]);\n\n const code = referralInfo?.referee_info?.referer_code;\n const rebate = referralInfo?.referee_info?.referee_rebate_rate;\n\n const rebateText = useMemo(() => {\n if (!!rebate) {\n return (\n new Decimal(rebate)\n .mul(100)\n .toDecimalPlaces(2, Decimal.ROUND_DOWN)\n .toString() + \"%\"\n );\n }\n return \"-\";\n }, [rebate]);\n\n const onPeriodChange = (item: string) => {\n setPeriod(item as SummaryFilter);\n };\n return {\n period,\n periodTypes,\n onPeriodChange,\n rebates,\n vol,\n rebateText,\n code,\n };\n};\n","import { useSummaryScript } from \"./summary.script\";\nimport { Summary } from \"./summary.ui\";\n\nexport const SummaryWidget = () => {\n const state = useSummaryScript();\n return <Summary {...state} />;\n};\n","import { FC } from \"react\";\nimport { Flex, Select, Text } from \"@orderly.network/ui\";\nimport { VolBarChart } from \"@orderly.network/chart\";\nimport { TitleStatisticReturns } from \"./titleStatistic.script\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const TitleStatistic: FC<TitleStatisticReturns> = (props) => {\n return (\n <Flex\n id=\"oui-affiliate-trader-titleStatistic\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9 xl:oui-flex-1\"\n >\n <Title {...props} />\n <Flex className=\"oui-min-h-[170px] oui-h-full oui-w-full oui-flex oui-flex-row oui-items-stretch\">\n <VolBarChart\n data={props.dataSource}\n colors={{ fill: \"rgba(0, 180, 158, 1)\" }}\n className=\"oui-w-full oui-flex-1\"\n tooltip={{\n rm: Decimal.ROUND_DOWN,\n dp: props.volType === \"volume\" ? 2 : 6,\n }}\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<TitleStatisticReturns> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.statistics\")}</Text>\n <Flex direction={\"row\"} gap={2} className={\"oui-min-w-14\"}>\n <Select.options\n size={\"xs\"}\n value={props.period}\n onValueChange={props.onPeriodChange}\n options={props.periodTypes}\n />\n <Select.options\n size={\"xs\"}\n value={props.volType}\n onValueChange={props.onVolTypeChange}\n options={props.volTypes}\n />\n </Flex>\n </Flex>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { format, subDays } from \"date-fns\";\nimport { VolChartDataItem } from \"@orderly.network/chart\";\nimport { useRefereeRebateSummary } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useReferralContext } from \"../../../provider\";\nimport { fillData } from \"../../../utils/chartUtils\";\nimport { BarDayFilter } from \"../../../utils/types\";\n\nexport type TitleStatisticReturns = {\n period: string;\n periodTypes: { label: string; value: string }[];\n onPeriodChange: (item: string) => void;\n volType: string;\n volTypes: { label: string; value: string }[];\n onVolTypeChange: (item: string) => void;\n dataSource: VolChartDataItem[];\n};\n\nexport const useTitleStatisticScript = (): TitleStatisticReturns => {\n const { t } = useTranslation();\n const [period, setPeriod] = useState<BarDayFilter>(\"7\");\n\n const periodTypes = [\n { label: t(\"common.select.7d\"), value: \"7\" },\n { label: t(\"common.select.30d\"), value: \"30\" },\n { label: t(\"common.select.90d\"), value: \"90\" },\n ];\n\n const onPeriodChange = (item: string) => {\n setPeriod(item as BarDayFilter);\n };\n\n const [volType, setVolType] = useState(\"rebate\");\n const volTypes = [\n { label: t(\"affiliate.trader.rebate\"), value: \"rebate\" },\n { label: t(\"common.volume\"), value: \"volume\" },\n ];\n\n const onVolTypeChange = (item: string) => {\n setVolType(item);\n };\n\n const dateRange = useMemo((): {\n startDate?: Date;\n endDate?: Date;\n } => {\n if (period === \"7\") {\n return {\n startDate: subDays(new Date(), 7),\n endDate: subDays(new Date(), 1),\n };\n } else if (period === \"30\") {\n return {\n startDate: subDays(new Date(), 30),\n endDate: subDays(new Date(), 1),\n };\n } else if (period === \"90\") {\n return {\n startDate: subDays(new Date(), 90),\n endDate: subDays(new Date(), 1),\n };\n } else {\n return {\n startDate: subDays(new Date(), 7),\n endDate: subDays(new Date(), 1),\n };\n }\n }, [period]);\n\n const { data: distributionData, mutate } = useRefereeRebateSummary(dateRange);\n const { dailyVolume, chartConfig } = useReferralContext();\n\n const dataSource = useMemo(() => {\n if (volType === \"rebate\") {\n const newData = distributionData || [];\n return newData\n .map((e) => ({\n date: e.date,\n volume: e.referee_rebate,\n }))\n .reverse();\n } else if (volType === \"volume\") {\n return (\n dailyVolume\n ?.filter((e) => {\n return (\n e.date > format(subDays(Date(), Number(period) + 1), \"yyyy-MM-dd\")\n );\n })\n .map((e) => ({\n date: e.date,\n volume: e.perp_volume,\n })) || []\n );\n } else {\n return [];\n }\n }, [distributionData, dailyVolume, volType]);\n\n return {\n period,\n periodTypes,\n onPeriodChange,\n volType,\n volTypes,\n onVolTypeChange,\n dataSource: fillData(Number(period), dataSource),\n };\n};\n","import { useTitleStatisticScript } from \"./titleStatistic.script\";\nimport { TitleStatistic } from \"./titleStatistic.ui\";\n\nexport const TitleStatisticWidget = () => {\n const state = useTitleStatisticScript();\n return <TitleStatistic {...state} />;\n};\n","import { FC } from \"react\";\nimport {\n DatePicker,\n Divider,\n Flex,\n ListView,\n Statistic,\n Column,\n Text,\n} from \"@orderly.network/ui\";\nimport { RebatesItem, RebatesReturns } from \"./rebates.script\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\nimport { AuthGuardDataTable } from \"@orderly.network/ui-connector\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Rebates: FC<RebatesReturns> = (props) => {\n return (\n <Flex\n id=\"oui-affiliate-trader-rebates\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9 oui-tabular-nums\"\n >\n <Title {...props} />\n <Flex\n width={\"100%\"}\n className=\"oui-border-y-2 oui-border-line-6\"\n height={49}\n direction={\"row\"}\n itemAlign={\"center\"}\n >\n <div>\n <DatePicker.range\n size=\"xs\"\n value={props.dateRange}\n onChange={(range) => {\n props.setDateRange(range);\n }}\n max={90}\n disabled={{\n after: new Date(),\n }}\n />\n </div>\n </Flex>\n <List {...props} />\n </Flex>\n );\n};\n\nconst Title: FC<RebatesReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.trader.myRebates\")}</Text>\n <Text intensity={36} className=\"oui-text-2xs\">\n {props.displayDate}\n </Text>\n </Flex>\n );\n};\n\nconst List: FC<RebatesReturns> = (props) => {\n const { t } = useTranslation();\n\n const layout767 = useMediaQuery(\"(max-width: 767px)\");\n\n const columns: Column<RebatesItem>[] = [\n {\n title: `${t(\"affiliate.trader.rebates\")} (USDC)`,\n dataIndex: \"referee_rebate\",\n render: (value) => (\n <Text>\n {commifyOptional(value, {\n fix: 6,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n ),\n width: 127,\n },\n {\n title: `${t(\"affiliate.trader.tradingVol\")} (USDC)`,\n dataIndex: \"vol\",\n render: (value) =>\n commifyOptional(value, {\n fix: 2,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n }),\n width: 127,\n },\n {\n title: t(\"common.date\"),\n dataIndex: \"date\",\n render: (value) => (\n <Text.formatted formatString=\"yyyy-MM-dd\">{value}</Text.formatted>\n ),\n width: 127,\n },\n ];\n\n if (layout767) {\n return (\n <ListView<RebatesItem, RebatesItem[]>\n dataSource={props.dataSource}\n className=\"oui-h-[197px] oui-w-full\"\n renderItem={(item, index) => {\n return <Cell item={item} />;\n }}\n />\n );\n }\n\n return (\n <AuthGuardDataTable\n bordered\n loading={props.isLoading}\n columns={columns}\n dataSource={props.dataSource}\n ignoreLoadingCheck={true}\n onRow={(record) => {\n return {\n className: \"oui-h-[41px]\",\n };\n }}\n pagination={props.pagination}\n manualPagination={false}\n />\n );\n};\n\nconst Cell = (props: { item: RebatesItem }) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"column\"} width={\"100%\"}>\n <Flex width={\"100%\"} gap={1}>\n <Statistic\n label={`${t(\"affiliate.trader.rebates\")} (USDC)`}\n className=\"oui-text-xs oui-text-base-contrast-54 oui-flex-1 oui-min-w-[105px]\"\n >\n <Text size=\"sm\" intensity={80}>\n {commifyOptional(props.item.referee_rebate, {\n fix: 6,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n </Statistic>\n <Statistic\n label={`${t(\"affiliate.trader.tradingVol\")} (USDC)`}\n className=\"oui-text-xs oui-text-base-contrast-54 oui-flex-shrink\"\n >\n <Text size=\"sm\" intensity={80}>\n {commifyOptional(props.item.vol, {\n fix: 2,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n </Statistic>\n <Statistic\n label={t(\"common.date\")}\n className=\"oui-text-xs oui-text-base-contrast-54 oui-flex-1\"\n align=\"end\"\n >\n <Text.formatted size=\"sm\" intensity={80} formatString=\"yyyy-MM-dd\">\n {props.item.date}\n </Text.formatted>\n </Statistic>\n </Flex>\n <Divider className=\"oui-w-full oui-mt-3\" />\n </Flex>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { DateRange } from \"../../../utils/types\";\nimport {\n useRefereeRebateSummary,\n RefferalAPI,\n useDaily,\n} from \"@orderly.network/hooks\";\nimport { compareDate, formatDateTimeToUTC } from \"../../../utils/utils\";\nimport { subDays, toDate } from \"date-fns\";\nimport { usePagination } from \"@orderly.network/ui\";\n\nexport type RebatesItem = RefferalAPI.RefereeRebateSummary & {\n vol?: number;\n};\n\nexport const useRebatesScript = () => {\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\n from: subDays(new Date(), 90),\n to: subDays(new Date(), 1),\n });\n\n const {\n data: distributionData,\n mutate,\n isLoading,\n } = useRefereeRebateSummary({\n startDate: dateRange?.from,\n endDate: dateRange?.to,\n });\n // const { dailyVolume } = useReferralContext();\n\n const { data: dailyVolume, mutate: dailyVolumeMutate } = useDaily({\n startDate: dateRange?.to,\n endDate: dateRange?.from,\n });\n\n const dataSource = useMemo((): RebatesItem[] => {\n if (typeof distributionData === \"undefined\") return [];\n\n return (\n distributionData\n // .filter((item: any) => item.status === \"COMPLETED\" && item.type === \"REFEREE_REBATE\")\n .map((item) => {\n const createdTime = item.date;\n\n const volume = dailyVolume?.filter((item) => {\n return compareDate(toDate(createdTime), toDate(item.date));\n })?.[0];\n if (volume) {\n return { ...item, vol: volume.perp_volume };\n }\n\n return item;\n })\n );\n }, [distributionData, dailyVolume]);\n\n let displayDate = undefined;\n if ((dataSource?.length || 0) > 0) {\n displayDate = formatDateTimeToUTC(dataSource?.[0].date);\n }\n\n const { pagination, setPage } = usePagination();\n\n useEffect(() => {\n setPage(1);\n }, [dateRange]);\n\n return {\n dateRange,\n setDateRange,\n displayDate,\n dataSource,\n // meta,\n // onPageChange,\n // onPageSizeChange,\n pagination,\n isLoading,\n };\n};\n\nexport type RebatesReturns = ReturnType<typeof useRebatesScript>;\n","import { useRebatesScript } from \"./rebates.script\";\nimport { Rebates } from \"./rebates.ui\";\n\nexport const RebatesWidget = () => {\n const state = useRebatesScript();\n return <Rebates {...state} />;\n};\n","import { ReactNode, useEffect, useMemo } from \"react\";\nimport { TabTypes, useReferralContext } from \"../../../provider\";\n\nexport type TabReturns = {\n tab: string;\n setTab: React.Dispatch<React.SetStateAction<TabTypes>>;\n isAffiliate: boolean;\n isTrader: boolean;\n isLoading: boolean;\n anAnAffiliate: () => void;\n anATrader: () => void;\n splashPage?: () => ReactNode | undefined;\n showHome: boolean;\n setShowHome: (value: boolean) => void;\n};\n\nexport const useTabScript = (): TabReturns => {\n const {\n isAffiliate,\n isTrader,\n isLoading,\n splashPage,\n showHome,\n setShowHome,\n tab,\n setTab,\n } = useReferralContext();\n\n const tableValue = useMemo((): TabTypes => {\n if (isAffiliate && isTrader) {\n return tab;\n } else if (isAffiliate && !isTrader) {\n return TabTypes.affiliate;\n } else if (!isAffiliate && isTrader) {\n return TabTypes.trader;\n } else {\n return TabTypes.affiliate;\n }\n }, [tab, isAffiliate, isTrader]);\n\n useEffect(() => {\n const searchParams = new URLSearchParams(window.location.search);\n const tab = searchParams.get(\"tab\");\n if (tab) {\n setTab(tab as TabTypes);\n }\n }, [window.location.search]);\n\n const anAnAffiliate = () => {\n // if (becomeAnAffiliateUrl !== undefined) {\n // window.open(becomeAnAffiliateUrl, \"_blank\");\n // } else if (onBecomeAnAffiliate !== undefined) {\n // onBecomeAnAffiliate?.();\n // }\n setShowHome(true);\n };\n\n const anATrader = () => {\n setShowHome(true);\n // showReferralPage?.();\n };\n\n return {\n setTab,\n tab: tableValue,\n isAffiliate,\n isTrader,\n isLoading,\n anAnAffiliate,\n anATrader,\n splashPage,\n showHome,\n setShowHome,\n // tab: TabTypes.affiliate,\n // isAffiliate: false,\n // isTrader: false,\n // isLoading: false,\n };\n};\n","import { useTabScript } from \"./tab.script\";\nimport { Tab } from \"./tab.ui\";\n\nexport const TabWidget = (props: {\n classNames?: {\n loadding?: string;\n home?: string;\n dashboard?: string;\n };\n}) => {\n const state = useTabScript();\n return <Tab classNames={props.classNames} {...state} />;\n};\n","import React, { PropsWithChildren } from \"react\";\nimport { Box } from \"@orderly.network/ui\";\nimport { Scaffold, SideBar, SideBarProps } from \"@orderly.network/ui-scaffold\";\n\nexport type AffiliateLayoutProps = {} & SideBarProps;\n\nexport const AffiliateLayout: React.FC<\n PropsWithChildren<AffiliateLayoutProps>\n> = (props) => {\n const { ...rest } = props;\n return (\n <Scaffold leftSidebar={<LeftSidebar {...rest} />}>\n <Box mx={3} my={6}>\n {props.children}\n </Box>\n </Scaffold>\n );\n};\n\nconst LeftSidebar: React.FC<SideBarProps> = (props) => {\n return (\n <Box p={4} m={3} border borderColor={8} r={\"xl\"}>\n <SideBar {...props} />\n </Box>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport type { SideBarProps } from \"@orderly.network/ui-scaffold\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const useLayoutBuilder = (): SideBarProps => {\n const [current, setCurrent] = useState(\"/\");\n // const [sideOpen, setSideOpen] = useState(true);\n const { t } = useTranslation();\n\n const items = useMemo(() => {\n return [\n {\n name: t(\"common.trading\"),\n href: \"/\",\n icon: (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.883 1.5c-.166.01-.393.076-.515.173a2 2 0 0 0-.18.173L.918 6.553a.86.86 0 0 0-.168.475c0 .339.232.543.232.543l7.374 8.633c.005.006.269.301.644.296s.64-.29.644-.296l7.402-8.663s.204-.269.204-.513-.196-.517-.196-.517L13.82 1.848c-.023-.032-.076-.021-.103-.049-.033-.038-.037-.091-.077-.124-.123-.097-.267-.106-.413-.123-.04-.005-.063-.049-.103-.049h-.078zm1.745 1.582h4.744L9 5.795zm-1.675.542 2.294 2.615H3.122zm8.094 0 1.831 2.615h-4.125zM3.328 7.818h4.847v5.672zm6.497 0h4.847c-1.151 1.345-3.422 4.007-4.847 5.672z\"\n fill=\"url(#a)\"\n />\n <defs>\n <linearGradient\n id=\"a\"\n x1=\"17.25\"\n y1=\"9\"\n x2=\".75\"\n y2=\"9\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop\n offset=\"1\"\n stopColor=\"rgb(var(--oui-gradient-brand-start))\"\n />\n </linearGradient>\n </defs>\n </svg>\n ),\n },\n {\n name: t(\"common.affiliate\"),\n href: \"/affiliate\",\n icon: (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.625 4.95c0-.746.604-1.35 1.35-1.35h4.05c.746 0 1.35.604 1.35 1.35v4.62L9 12.195 5.625 9.57zm8.624 3.163-.524.407v-.96l.074.05c.193.128.346.302.45.502m-4.42 5.148L14.4 9.705v3.345a1.35 1.35 0 0 1-1.35 1.35h-8.1a1.35 1.35 0 0 1-1.35-1.35V9.705l4.571 3.556c.488.379 1.17.379 1.658 0M4.275 8.52l-.524-.407c.104-.2.257-.374.45-.503l.074-.049zm0-2.581V4.95a2.7 2.7 0 0 1 2.7-2.7h4.05a2.7 2.7 0 0 1 2.7 2.7v.989l.823.548a2.7 2.7 0 0 1 1.202 2.247v4.316a2.7 2.7 0 0 1-2.7 2.7h-8.1a2.7 2.7 0 0 1-2.7-2.7V8.734a2.7 2.7 0 0 1 1.202-2.247zM9 6.089l.111-.118.005-.005a1.08 1.08 0 0 1 1.58.004 1.223 1.223 0 0 1 0 1.668l-1.515 1.62-.004.004c-.1.102-.26.1-.358-.004l-1.516-1.62a1.223 1.223 0 0 1 0-1.668l.004-.004a1.08 1.08 0 0 1 1.58.004z\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n ),\n },\n ];\n }, [t]);\n\n return {\n items,\n current,\n // open: sideOpen,\n // onOpenChange(open) {\n // setSideOpen(open);\n // },\n onItemSelect: (item) => {\n // @ts-ignore\n setCurrent(item.href);\n },\n };\n};\n","import { PropsWithChildren } from \"react\";\nimport { AffiliateLayout } from \"./layout.ui\";\nimport { useLayoutBuilder } from \"./layout.script\";\n\nexport const AffiliateLayoutWidget = (props: PropsWithChildren) => {\n const state = useLayoutBuilder();\n return <AffiliateLayout {...state} children={props.children} />;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/pages/dashboard/index.tsx","../src/components/affiliateIcon.tsx","../src/components/traderIcon.tsx","../src/provider/context.ts","../src/provider/provider.tsx","../src/components/usdcIcon.tsx","../src/pages/affiliate/summary/summary.ui.tsx","../src/pages/affiliate/summary/summary.script.tsx","../src/pages/affiliate/summary/summary.widget.tsx","../src/components/autoHideText.tsx","../src/pages/affiliate/referralLink/referralLink.ui.tsx","../src/utils/utils.ts","../src/pages/affiliate/referralLink/referralLink.script.tsx","../src/pages/affiliate/referralLink/referralLink.widget.tsx","../src/pages/affiliate/titleStatistic/titleStatistic.ui.tsx","../src/utils/chartUtils.ts","../src/pages/affiliate/titleStatistic/titleStatistic.script.tsx","../src/pages/affiliate/titleStatistic/titleStatistic.widget.tsx","../src/components/editIcon.tsx","../src/components/editCodeBtn.tsx","../src/components/pinButton.tsx","../src/pages/affiliate/referralCodes/referralCodes.ui.tsx","../src/pages/affiliate/referralCodes/editCodeModal.tsx","../src/pages/affiliate/referralCodes/editReferralRate.tsx","../src/pages/affiliate/referralCodes/referralCodes.script.tsx","../src/pages/affiliate/referralCodes/referralCodes.widget.tsx","../src/pages/affiliate/commissionAndReferees/commissionAndReferees.ui.tsx","../src/pages/affiliate/commissionAndReferees/commissionAndReferees.script.tsx","../src/pages/affiliate/commissionAndReferees/commissionAndReferees.widget.tsx","../src/pages/affiliate/page.tsx","../src/pages/home/becomeAffiliate/becomeAffiliate.ui.tsx","../src/pages/home/becomeAffiliate/becomeAffiliate.script.tsx","../src/pages/home/becomeAffiliate/becomeAffiliate.widget.tsx","../src/pages/home/title/title.ui.tsx","../src/pages/home/title/title.widget.tsx","../src/pages/home/subtitle/subtitle.ui.tsx","../src/pages/home/subtitle/subtitle.script.tsx","../src/pages/home/subtitle/subtitle.widget.tsx","../src/pages/home/top/top.ui.tsx","../src/pages/home/top/top.script.tsx","../src/pages/home/top/top.widget.tsx","../src/components/arrowRightIcon.tsx","../src/pages/home/asATrader/asTrader.ui.tsx","../src/pages/home/asATrader/asTrader.script.tsx","../src/pages/home/asATrader/asTrader.widget.tsx","../src/pages/home/asAnAffilate/asAnAffiliate.ui.tsx","../src/pages/home/asAnAffilate/asAnAffiliate.script.tsx","../src/pages/home/asAnAffilate/asAnAffiliate.widget.tsx","../src/pages/home/card/card.ui.tsx","../src/pages/home/card/card.script.tsx","../src/pages/home/card/card.widget.tsx","../src/pages/home/page.tsx","../src/pages/trader/summary/summary.ui.tsx","../src/pages/trader/summary/summary.script.tsx","../src/pages/trader/summary/summary.widget.tsx","../src/pages/trader/titleStatistic/titleStatistic.ui.tsx","../src/pages/trader/titleStatistic/titleStatistic.script.tsx","../src/pages/trader/titleStatistic/titleStatistic.widget.tsx","../src/pages/trader/rebates/rebates.ui.tsx","../src/pages/trader/rebates/rebates.script.tsx","../src/pages/trader/rebates/rebates.widget.tsx","../src/pages/trader/page.tsx","../src/pages/dashboard/tab/tab.ui.tsx","../src/pages/dashboard/tab/tab.script.tsx","../src/pages/dashboard/tab/tab.widget.tsx","../src/pages/dashboard/page.tsx","../src/layout/layout.ui.tsx","../src/layout/layout.script.tsx","../src/layout/layout.widget.tsx"],"names":["jsxs","jsx","TabTypes","data","useTranslation","useState","useMemo","useRef","text","useEffect","Flex","Title","Text","format","toast","code","Decimal","Select","subDays","Divider","cn","CopyIcon","modal","useModal","useMutation","Input","Button","useLocalStorage","MobileCellItem","Statistic","useMediaQuery","commifyOptional","ListView","useReferralRebateSummary","Fragment","Subtitle","Dialog","DialogContent","DialogTitle","TextField","inputFormatter","useAppContext","useAccount","Icon","Bottom","useScreen","Summary","CommissionData","Row","useSummaryScript","SummaryWidget","TitleStatistic","VolBarChart","useTitleStatisticScript","TitleStatisticWidget","DatePicker","AuthGuardDataTable","useRefereeRebateSummary","useDaily","item","toDate","usePagination","tab","Box"],"mappings":"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","file":"index.mjs","sourcesContent":["export { DashboardPage } from \"./page\";\nexport { HomePage} from \"../home\";\nexport { AffiliatePage } from \"../affiliate\";\nexport { TraderPage } from \"../trader\";","import { FC } from \"react\";\nimport { IconProps } from \"../utils/types\";\n\nexport const AffiliateIcon: FC<IconProps> = (props) => {\n const { size = 16, className, ...rest } = props;\n\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n {...rest}\n >\n <path d=\"M8 1.302c-3.683 0-6.655 2.985-6.667 6.667-.013 3.676 2.987 6.68 6.666 6.687s6.674-3.037 6.667-6.687c-.007-3.682-2.985-6.667-6.667-6.667m0 1.333a5.333 5.333 0 0 1 5.333 5.334c0 1.5-.625 2.852-1.622 3.821-.49-1.062-1.545-1.821-2.753-1.821H7.04c-1.207 0-2.259.75-2.75 1.812A5.3 5.3 0 0 1 2.666 7.97a5.333 5.333 0 0 1 5.333-5.334M8 3.97a2.667 2.667 0 1 0 0 5.333A2.667 2.667 0 0 0 8 3.97\" />\n <path\n d=\"M16 12.667a3.333 3.333 0 1 1-6.667 0 3.333 3.333 0 0 1 6.667 0\"\n fill=\"#1828C3\"\n />\n <path d=\"M11.917 11.433a.917.917 0 0 0-.917.917c0 .53.302 1.031.802 1.49a4.6 4.6 0 0 0 .713.53l.068.043c.05.027.117.027.167 0l.068-.042q.08-.05.177-.115c.182-.123.366-.26.536-.416.5-.459.802-.96.802-1.49a.917.917 0 0 0-.917-.917.97.97 0 0 0-.744.386.95.95 0 0 0-.756-.386\" />\n </svg>\n );\n};\n","import { FC } from \"react\";\nimport { IconProps } from \"../utils/types\";\n\nexport const TraderIcon: FC<IconProps> = (props) => {\n const { size = 16, className, ...rest } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"white\"\n fillOpacity=\"0.36\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n {...rest}\n >\n <path d=\"M7.99929 1.30212C4.31735 1.30212 1.34509 4.28679 1.33262 7.96878C1.32015 11.6454 4.32042 14.6488 7.99929 14.6561C11.6782 14.6634 14.6726 11.6194 14.666 7.96878C14.6593 4.28679 11.6812 1.30212 7.99929 1.30212ZM7.99929 2.63546C10.9448 2.63546 13.3326 5.02345 13.3326 7.96878C13.3326 9.46878 12.7078 10.8208 11.7112 11.7901C11.2202 10.7281 10.1656 9.96878 8.95762 9.96878C8.71802 9.96878 7.28042 9.96878 7.04095 9.96878C5.83369 9.96878 4.78215 10.7188 4.29095 11.7814C3.29429 10.8121 2.66595 9.46878 2.66595 7.96878C2.66595 5.02345 5.05375 2.63546 7.99929 2.63546ZM7.99929 3.96879C6.52649 3.96879 5.33255 5.16279 5.33262 6.63545C5.33262 8.10812 6.52649 9.30212 7.99929 9.30212C9.47202 9.30212 10.666 8.10812 10.666 6.63545C10.666 5.16279 9.47202 3.96879 7.99929 3.96879Z\" />\n <path\n d=\"M16 12.6667C16 14.5076 14.5076 16 12.6666 16C10.8257 16 9.33331 14.5076 9.33331 12.6667C9.33331 10.8257 10.8257 9.33333 12.6666 9.33333C14.5076 9.33333 16 10.8257 16 12.6667Z\"\n fill=\"#005A4F\"\n />\n <path\n d=\"M14.3325 13.3345C14.3325 13.2918 14.3182 13.2473 14.2857 13.2147L13.6658 12.6002L13.4315 12.8345L13.7595 13.1678H11.3325C11.2405 13.1678 11.1658 13.2425 11.1658 13.3345C11.1658 13.4265 11.2405 13.5012 11.3325 13.5012H13.7595L13.4315 13.8345L13.6658 14.0688L14.2857 13.4543C14.3182 13.4217 14.3325 13.3772 14.3325 13.3345ZM14.1658 12.0012C14.1658 11.9092 14.0912 11.8345 13.9992 11.8345H11.572L11.9002 11.5012L11.6658 11.2668L11.046 11.8813C10.981 11.9465 10.981 12.0558 11.046 12.121L11.6658 12.7355L11.9002 12.5012L11.572 12.1678H13.9992C14.0912 12.1678 14.1658 12.0932 14.1658 12.0012Z\"\n fill=\"white\"\n fillOpacity=\"0.98\"\n />\n </svg>\n );\n};\n","import { ReactNode, createContext, useContext } from \"react\";\nimport { RefferalAPI as API } from \"@orderly.network/hooks\";\n\nexport enum TabTypes {\n affiliate = \"affiliate\",\n trader = \"trader\",\n}\n\nexport type UserVolumeType = {\n \"1d_volume\"?: number;\n \"7d_volume\"?: number;\n \"30d_volume\"?: number;\n all_volume?: number;\n};\n\n// export type OverwiteCard = {\n// ref?: BuildNode,\n// refClassName?: string,\n// refIcon?: ReactNode,\n\n// trader?: BuildNode,\n// traderClassName?: string,\n// traderIcon?: ReactNode,\n// }\n\nexport type BuildNode = (state: ReferralContextReturns) => ReactNode;\n\nexport type Overwrite = {\n shortBrokerName?: string;\n brokerName?: string;\n ref?: {\n top?: BuildNode;\n card?: BuildNode;\n step?: BuildNode;\n };\n};\n\nexport type ChartConfig = {\n // affiliate: {\n // bar?: BarStyle,\n // yAxis?: YAxis,\n // xAxis?: XAxis,\n // },\n // trader: {\n // bar?: BarStyle,\n // yAxis?: YAxis,\n // xAxis?: XAxis,\n // }\n affiliate: {\n bar?: any;\n yAxis?: any;\n xAxis?: any;\n };\n trader: {\n bar?: any;\n yAxis?: any;\n xAxis?: any;\n };\n};\n\nexport type ReferralContextProps = {\n //** click become an affiliate, If this method is implemented, the `becomeAnAffiliateUrl` will not work */\n onBecomeAnAffiliate?: () => void;\n //** set become an affiliate url, default is `https://orderly.network/` */\n becomeAnAffiliateUrl?: string;\n //** bind refferal code callback */\n bindReferralCodeState?: (\n success: boolean,\n error: any,\n hide: any,\n queryParams: any,\n ) => void;\n //** click learn affilate, if this method is implemented, the `learnAffilateUrl` will not work */\n onLearnAffiliate?: () => void;\n //** set learn affiliate url, default is `https://orderly.network/` */\n learnAffiliateUrl?: string;\n //** default is `https://orderly.network/` */\n referralLinkUrl: string;\n //** referral index page */\n showReferralPage?: () => void;\n // onEnterTraderPage?: (params?: any) => void,\n // onEnterAffiliatePage?: (params?: any) => void,\n //** tab + tab content */\n showDashboard?: () => void;\n //** col chart config */\n chartConfig?: ChartConfig;\n //** overwrite refferal */\n overwrite?: Overwrite;\n //** build a splash page, if not impletement, will be dispaly referral page */\n splashPage?: () => ReactNode;\n};\n\nexport type ReferralContextReturns = {\n referralInfo?: API.ReferralInfo;\n isAffiliate: boolean;\n isTrader: boolean;\n mutate: any;\n userVolume?: UserVolumeType;\n dailyVolume?: API.DayliVolume[];\n isLoading: boolean;\n showHome: boolean;\n setShowHome: (value: boolean) => void;\n tab: TabTypes;\n setTab: React.Dispatch<React.SetStateAction<TabTypes>>;\n wrongNetwork: boolean;\n disabledConnect: boolean;\n generateCode: API.AutoGenerateCode | undefined;\n} & ReferralContextProps;\n\nexport const ReferralContext = createContext<ReferralContextReturns>(\n {} as ReferralContextReturns,\n);\n\nexport const useReferralContext = () => {\n return useContext(ReferralContext);\n};\n","import {\n FC,\n PropsWithChildren,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { format, subDays } from \"date-fns\";\nimport {\n RefferalAPI as API,\n usePrivateQuery,\n useDaily,\n useAccount,\n useMemoizedFn,\n noCacheConfig,\n} from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n ReferralContext,\n ReferralContextProps,\n ReferralContextReturns,\n TabTypes,\n UserVolumeType,\n} from \"./context\";\n\nexport const ReferralProvider: FC<PropsWithChildren<ReferralContextProps>> = (\n props,\n) => {\n const {\n becomeAnAffiliateUrl = \"https://orderly.network/\",\n learnAffiliateUrl = \"https://orderly.network/\",\n referralLinkUrl,\n chartConfig,\n overwrite,\n children,\n splashPage,\n onBecomeAnAffiliate,\n bindReferralCodeState,\n onLearnAffiliate,\n showReferralPage,\n } = props;\n\n const { state } = useAccount();\n\n const {\n data,\n mutate: referralInfoMutate,\n isLoading,\n } = usePrivateQuery<API.ReferralInfo>(\"/v1/referral/info\", {\n revalidateOnFocus: true,\n errorRetryCount: 3,\n ...noCacheConfig,\n });\n\n const { data: generateCode, mutate: generateCodeMutate } =\n usePrivateQuery<API.AutoGenerateCode>(\n \"/v1/referral/auto_referral/progress\",\n {\n revalidateOnFocus: true,\n errorRetryCount: 2,\n formatter: (data) => {\n return {\n code: data.auto_referral_code,\n requireVolume: data.required_volume,\n completedVolume: data.completed_volume,\n };\n },\n },\n );\n\n const [showHome, setShowHome] = useState(isLoading);\n\n useEffect(() => {\n setShowHome(true);\n }, [isLoading]);\n\n const { data: dailyVolume, mutate: dailyVolumeMutate } = useDaily({\n startDate: subDays(new Date(), 1),\n endDate: subDays(new Date(), 90),\n });\n\n const { data: volumeStatistics, mutate: volumeStatisticsMutate } =\n usePrivateQuery<API.UserVolStats>(\"/v1/volume/user/stats\", {\n revalidateOnFocus: true,\n });\n\n const isAffiliate = useMemo(() => {\n return (data?.referrer_info?.referral_codes?.length || 0) > 0;\n }, [data?.referrer_info]);\n\n const isTrader = useMemo(() => {\n return (data?.referee_info?.referer_code?.length || 0) > 0;\n }, [data?.referee_info]);\n\n const userVolume = useMemo<UserVolumeType>(() => {\n const volume: UserVolumeType = {};\n if (dailyVolume && dailyVolume.length > 0) {\n const now = format(new Date(), \"yyyy-MM-dd\");\n const index = dailyVolume.findIndex((item) => item.date === now);\n let oneDayVolume = 0;\n if (index !== -1) {\n oneDayVolume = dailyVolume[index].perp_volume;\n }\n volume[\"1d_volume\"] = oneDayVolume;\n }\n\n if (volumeStatistics) {\n volume[\"7d_volume\"] = volumeStatistics.perp_volume_last_7_days;\n volume[\"30d_volume\"] = volumeStatistics.perp_volume_last_30_days;\n volume[\"all_volume\"] = volumeStatistics.perp_volume_ltd;\n }\n return volume;\n }, [dailyVolume, volumeStatistics]);\n\n useEffect(() => {\n if (isAffiliate || isTrader) {\n setShowHome(false);\n }\n }, [isAffiliate, isTrader]);\n\n const memoMutate = useMemoizedFn(() => {\n volumeStatisticsMutate();\n dailyVolumeMutate();\n referralInfoMutate();\n generateCodeMutate();\n });\n\n useEffect(() => {\n const searchParams = new URLSearchParams(window.location.search);\n const refCode = searchParams.get(\"ref\");\n if (refCode) {\n localStorage.setItem(\"referral_code\", refCode);\n }\n }, []);\n\n const [tab, setTab] = useState<TabTypes>(() => {\n const savedTab = localStorage.getItem(\"orderly_affiliate_dashboard_tab\");\n return (savedTab as TabTypes) || TabTypes.affiliate;\n });\n\n useEffect(() => {\n localStorage.setItem(\"orderly_affiliate_dashboard_tab\", tab);\n }, [tab]);\n\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const lastStete = useRef<AccountStatusEnum>(AccountStatusEnum.NotConnected);\n\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (lastStete.current !== state.status) {\n lastStete.current = state.status;\n timerRef.current = setTimeout(() => {\n memoMutate();\n }, 1000);\n }\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [memoMutate, state.status]);\n\n const memoizedValue = useMemo<ReferralContextReturns>(() => {\n return {\n generateCode,\n showHome,\n referralInfo: data,\n isAffiliate: isAffiliate,\n isTrader: isTrader,\n tab,\n becomeAnAffiliateUrl,\n learnAffiliateUrl,\n referralLinkUrl,\n userVolume,\n dailyVolume,\n chartConfig,\n overwrite,\n isLoading,\n wrongNetwork,\n disabledConnect,\n setShowHome,\n setTab: setTab,\n mutate: memoMutate,\n onBecomeAnAffiliate,\n bindReferralCodeState,\n onLearnAffiliate,\n showReferralPage,\n splashPage,\n };\n }, [\n becomeAnAffiliateUrl,\n chartConfig,\n dailyVolume,\n data,\n disabledConnect,\n generateCode,\n isAffiliate,\n isLoading,\n isTrader,\n learnAffiliateUrl,\n overwrite,\n referralLinkUrl,\n showHome,\n tab,\n userVolume,\n wrongNetwork,\n onBecomeAnAffiliate,\n bindReferralCodeState,\n onLearnAffiliate,\n showReferralPage,\n splashPage,\n memoMutate,\n ]);\n\n return (\n <ReferralContext.Provider value={memoizedValue}>\n {children}\n </ReferralContext.Provider>\n );\n};\n","import { FC } from \"react\";\n\nexport const USDCIcon: FC<{\n className?: string;\n}> = (props) => {\n return (\n <svg\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n >\n <g clipPath=\"url(#a)\">\n <path\n d=\"M10.5 20c5.542 0 10-4.458 10-10s-4.458-10-10-10S.5 4.458.5 10s4.458 10 10 10\"\n fill=\"#2775CA\"\n />\n <path\n d=\"M13.5 11.473c0-1.452-.94-1.95-2.82-2.158-1.344-.166-1.613-.498-1.613-1.078s.448-.955 1.343-.955c.806 0 1.254.25 1.478.872.045.124.18.207.313.207h.717c.179 0 .313-.125.313-.29v-.042c-.179-.913-.985-1.618-2.015-1.701v-.996c0-.166-.134-.29-.358-.332h-.671c-.18 0-.314.124-.359.332v.954c-1.343.166-2.194.996-2.194 2.034 0 1.369.896 1.908 2.776 2.116 1.254.207 1.657.456 1.657 1.12s-.627 1.12-1.477 1.12c-1.165 0-1.568-.456-1.702-1.078a.32.32 0 0 0-.313-.25h-.762c-.179 0-.313.125-.313.291v.042c.179 1.037.895 1.784 2.373 1.991v.996c0 .166.134.29.358.332h.672c.18 0 .313-.124.358-.332v-.996c1.344-.207 2.239-1.079 2.239-2.199\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n d=\"M8.24 16.57c-3.458-1.215-5.23-4.986-3.945-8.324.665-1.821 2.127-3.208 3.944-3.859.178-.086.266-.216.266-.433v-.607c0-.174-.088-.304-.266-.347-.044 0-.133 0-.177.043-4.21 1.3-6.516 5.68-5.186 9.798.798 2.428 2.704 4.292 5.186 5.072.177.087.355 0 .4-.173.043-.043.043-.087.043-.173v-.608c0-.13-.133-.303-.266-.39m4.698-13.527c-.178-.086-.355 0-.4.174-.043.043-.043.086-.043.173v.607c0 .174.133.347.266.434 3.457 1.213 5.23 4.985 3.944 8.323-.664 1.821-2.127 3.209-3.944 3.859-.178.086-.266.216-.266.433v.607c0 .174.088.304.266.347.044 0 .133 0 .177-.043 4.21-1.3 6.515-5.68 5.186-9.798-.798-2.471-2.748-4.335-5.186-5.116\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M.5 0h20v20H.5z\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { FC } from \"react\";\nimport { Flex, Select, Text } from \"@orderly.network/ui\";\nimport { SummaryReturns } from \"./summary.script\";\nimport { USDCIcon } from \"../../../components/usdcIcon\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Summary: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-affiliate-summary\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n height={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9\"\n >\n <Title {...props} />\n <CommissionData {...props} />\n <Flex direction={\"column\"} width={\"100%\"} gap={2}>\n <Row\n title={`${t(\"affiliate.referralVol\")} (USDC)`}\n value={props.referralVol}\n dp={2}\n {...props}\n />\n <Row\n title={t(\"affiliate.referees\")}\n value={props.referees}\n dp={0}\n {...props}\n />\n <Row\n title={t(\"affiliate.summary.refereesTraded\")}\n value={props.refereesTades}\n dp={0}\n {...props}\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.summary\")}</Text>\n <div className={\"oui-min-w-14\"}>\n <Select.options\n size={\"xs\"}\n value={props.period}\n onValueChange={props.onPeriodChange}\n options={props.periodTypes}\n />\n </div>\n </Flex>\n );\n};\n\nconst CommissionData: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n gradient=\"primary\"\n angle={180}\n r=\"xl\"\n py={4}\n px={6}\n width={\"100%\"}\n direction={\"column\"}\n gap={3}\n height={\"100%\"}\n className=\"oui-max-h-[104px]\"\n >\n <Text intensity={54} className=\"oui-text-base 2xl:oui-text-lg\">\n {`${t(\"affiliate.commission\")} (USDC)`}\n </Text>\n <Flex\n direction={\"row\"}\n gap={3}\n className=\"oui-text-xl md:oui-text-2xl xl:oui-text-3xl\"\n >\n <USDCIcon className=\"md:oui-w-[24px] md:oui-h-[24px] lg:oui-w-[28px] lg:oui-h-[28px] \" />\n <Text>\n {commifyOptional(props.commission, { fix: 2, fallback: \"0\" })}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\nconst Row: FC<\n SummaryReturns & {\n title: string;\n value: number;\n dp: number;\n }\n> = (props) => {\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text\n intensity={54}\n className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n >\n {props.title}\n </Text>\n <Text className=\"oui-text-xs md:oui-text-sm xl:oui-text-base\">\n {commifyOptional(props.value, { fix: props.dp, fallback: \"0\" })}\n </Text>\n </Flex>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useReferralContext } from \"../../../provider\";\nimport { SummaryFilter } from \"../../../utils/types\";\n\nexport type SummaryReturns = {\n period: string;\n periodTypes: { label: string; value: string }[];\n onPeriodChange: (item: string) => void;\n commission: number;\n referralVol: number;\n referees: number;\n refereesTades: number;\n};\n\nexport const useSummaryScript = (): SummaryReturns => {\n const { t } = useTranslation();\n const [period, setPeriod] = useState<SummaryFilter>(\"All\");\n\n const periodTypes: { label: string; value: SummaryFilter }[] = [\n { label: t(\"common.all\"), value: \"All\" },\n { label: t(\"common.select.1d\"), value: \"1D\" },\n { label: t(\"common.select.7d\"), value: \"7D\" },\n { label: t(\"common.select.30d\"), value: \"30D\" },\n ];\n\n const { referralInfo } = useReferralContext();\n\n const commission = useMemo(() => {\n if (!referralInfo || !referralInfo.referrer_info) {\n return 0;\n }\n switch (period) {\n case \"All\":\n return referralInfo.referrer_info.total_referrer_rebate;\n case \"1D\":\n return referralInfo.referrer_info[\"1d_referrer_rebate\"];\n case \"7D\":\n return referralInfo.referrer_info[\"7d_referrer_rebate\"];\n case \"30D\":\n return referralInfo.referrer_info[\"30d_referrer_rebate\"];\n }\n }, [referralInfo, period]);\n\n const referralVol = useMemo(() => {\n if (!referralInfo || !referralInfo.referrer_info) {\n return 0;\n }\n switch (period) {\n case \"All\":\n return referralInfo.referrer_info.total_referee_volume;\n case \"1D\":\n return referralInfo.referrer_info[\"1d_referee_volume\"];\n case \"7D\":\n return referralInfo.referrer_info[\"7d_referee_volume\"];\n case \"30D\":\n return referralInfo.referrer_info[\"30d_referee_volume\"];\n }\n }, [referralInfo, period]);\n\n const referees = useMemo(() => {\n if (!referralInfo || !referralInfo.referrer_info) {\n return 0;\n }\n switch (period) {\n case \"All\":\n return referralInfo.referrer_info.total_invites;\n case \"1D\":\n return referralInfo.referrer_info[\"1d_invites\"];\n case \"7D\":\n return referralInfo.referrer_info[\"7d_invites\"];\n case \"30D\":\n return referralInfo.referrer_info[\"30d_invites\"];\n }\n }, [referralInfo, period]);\n\n const refereesTades = useMemo(() => {\n if (!referralInfo || !referralInfo.referrer_info) {\n return 0;\n }\n switch (period) {\n case \"All\":\n return referralInfo.referrer_info.total_traded;\n case \"1D\":\n return referralInfo.referrer_info[\"1d_traded\"];\n case \"7D\":\n return referralInfo.referrer_info[\"7d_traded\"];\n case \"30D\":\n return referralInfo.referrer_info[\"30d_traded\"];\n }\n }, [referralInfo, period]);\n\n const onPeriodChange = (item: string) => {\n setPeriod(item as SummaryFilter);\n };\n\n return {\n period,\n periodTypes,\n onPeriodChange,\n commission,\n referralVol,\n referees,\n refereesTades,\n };\n};\n","import { useSummaryScript } from \"./summary.script\";\nimport { Summary } from \"./summary.ui\";\n\nexport const SummaryWidget = () => {\n const state = useSummaryScript();\n return <Summary {...state} />;\n};\n","\nimport { cn } from \"@orderly.network/ui\";\nimport { FC, useEffect, useMemo, useRef, useState } from \"react\";\n\nexport const AutoHideText: FC<{\n text: string;\n className?: string;\n visibleCount?: number;\n}> = (props) => {\n const { text, visibleCount } = props;\n const containerRef = useRef<HTMLDivElement | null>(null);\n const textRef = useRef<HTMLDivElement>(null);\n const lastContainerWidth = useRef<number | undefined>(undefined);\n\n function getTextWidth(ref: HTMLDivElement, text: string): number | undefined {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n const element = ref; \n if (context && element) {\n let fontStyle = getComputedStyle(element).font;\n if (fontStyle.length === 0) {\n fontStyle = [\n getComputedStyle(element).fontWeight,\n getComputedStyle(element).fontSize,\n getComputedStyle(element).fontFamily,\n ].join(\" \");\n }\n context.font = fontStyle;\n context.letterSpacing = getComputedStyle(element).letterSpacing;\n\n const width = context.measureText(text).width;\n return width;\n }\n return undefined;\n }\n\n const [visibleChars, setVisibleChars] = useState(0);\n\n useEffect(() => {\n const calculateVisibleChars = () => {\n if (props.visibleCount !== undefined) return;\n if (containerRef.current && textRef.current) {\n const containerWidth = containerRef.current.clientWidth;\n\n if (containerWidth == lastContainerWidth.current) return;\n lastContainerWidth.current = containerWidth;\n\n const textElement = textRef.current;\n\n const textContent = text;\n\n const pWidth = Math.ceil(getTextWidth(textElement, \"...\") || 0);\n \n const maxDisplayW = containerWidth - pWidth;\n let count = 0;\n while(count < text.length) {\n let contentW = getTextWidth(textElement, subText(text, count++)) || maxDisplayW;\n \n if (contentW <= maxDisplayW) {\n break;\n }\n }\n setVisibleChars(textContent.length - count);\n }\n };\n\n lastContainerWidth.current = undefined;\n calculateVisibleChars();\n\n window.addEventListener(\"resize\", calculateVisibleChars);\n return () => {\n lastContainerWidth.current = undefined;\n window.removeEventListener(\"resize\", calculateVisibleChars);\n };\n }, [text, textRef]);\n\n const truncatedText = useMemo(() => {\n if (visibleChars + 1 >= text.length) {\n return text;\n }\n\n const maxCharacters = visibleCount || visibleChars;\n\n const startText = text.slice(0, Math.ceil(maxCharacters / 2));\n const endText = text.slice(\n text.length - Math.floor(maxCharacters / 2),\n text.length\n );\n\n return `${startText}...${endText}`;\n }, [text, visibleCount, visibleChars]);\n\n return (\n <div ref={containerRef} className={cn(\"oui-relative oui-w-full oui-text-end\", props.className)}>\n <div\n className={cn(\n \"oui-hidden oui-whitespace-nowrap oui-absolute oui-top-0 oui-bottom-0 oui-right-0 oui-left-0\",\n )}\n >\n <span ref={textRef}>{text}</span>\n </div>\n <span>{truncatedText}</span>\n </div>\n );\n};\n\n\nconst subText = (text: string, count: number) => {\n const start = Math.floor(text.length / 2 - (count > 0 ? count / 2 : 1));\n const first = text.slice(0, start);\n const end = text.slice(start + count);\n return first + end;\n}","import { FC } from \"react\";\nimport {\n CopyIcon,\n Divider,\n Flex,\n modal,\n Text,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { ReferralLinkReturns } from \"./referralLink.script\";\nimport { AutoHideText } from \"../../../components/autoHideText\";\nimport { Trans, useTranslation } from \"@orderly.network/i18n\";\n\nexport const ReferralLink: FC<ReferralLinkReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-affiliate-referralLink\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9\"\n >\n <Title {...props} />\n <Flex\n width={\"100%\"}\n className=\"oui-flex oui-flex-col 3xl:oui-flex-row\"\n gap={4}\n >\n <div className=\"oui-w-full 3xl:oui-w-1/3\">\n <Subtitle {...props} />\n </div>\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n className=\"3xl:oui-w-2/3 3xl:oui-gap-2\"\n >\n <Input\n title={t(\"affiliate.referralCode\")}\n value={props.refCode}\n {...props}\n />\n <Input\n title={t(\"affiliate.referralLink\")}\n value={props.refLink}\n {...props}\n />\n </Flex>\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<ReferralLinkReturns> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.referralLink\")}</Text>\n </Flex>\n );\n};\n\nconst Subtitle: FC<ReferralLinkReturns> = (props) => {\n const { t } = useTranslation();\n\n const item = (\n title: string,\n value: string,\n gradient: boolean,\n className?: string,\n tooltip?: any\n ) => {\n const valueClsName =\n \"oui-text-lg md:oui-text-xl lg:oui-text-2xl xl:oui-text-3xl\";\n return (\n <Flex direction={\"column\"} itemAlign={\"start\"} className={className}>\n <Flex direction={\"row\"} gap={2}>\n {/* <Text>{title}</Text> */}\n <Alert title={title} tooltip={tooltip} />\n </Flex>\n {gradient ? (\n <Text.gradient color=\"brand\" className={valueClsName}>\n {value}\n </Text.gradient>\n ) : (\n <Text className={valueClsName}>{value}</Text>\n )}\n </Flex>\n );\n };\n\n return (\n <Flex direction={\"row\"} width={\"100%\"}>\n {item(\n t(\"affiliate.referralLink.earn\"),\n props.earn || \"-\",\n true,\n \"oui-flex-1\",\n <span>\n <Text.gradient color=\"brand\">{props.earn || \"-\"}</Text.gradient>{\" \"}\n {t(\"affiliate.referralLink.earn.tooltip\", {\n brokerName: props.brokerName,\n })}\n </span>\n // @ts-ignore\n // <Trans\n // i18nKey=\"affiliate.referralLink.earn.tooltip\"\n // values={{\n // value: props.earn || \"-\",\n // brokerName: props.brokerName,\n // }}\n // components={[<Text.gradient color=\"brand\" />]}\n // />\n )}\n {item(\n t(\"affiliate.referralLink.share\"),\n props.share || \"-\",\n false,\n \"oui-flex-1\",\n // @ts-ignore\n <Trans\n i18nKey=\"affiliate.referralLink.share.tooltip\"\n values={{\n value: props.share || \"-\",\n brokerName: props.brokerName,\n }}\n components={[<Text.gradient color=\"brand\" />]}\n />\n )}\n </Flex>\n );\n};\n\nconst Input: FC<\n ReferralLinkReturns & {\n title: string;\n value?: string;\n }\n> = (props) => {\n const { title, value = \"-\" } = props;\n return (\n <Flex\n r=\"xl\"\n p={3}\n gap={4}\n direction={\"row\"}\n width={\"100%\"}\n className=\"oui-bg-base-8\"\n >\n <Text className=\"oui-text-base-contrast-54 oui-flex-shrink oui-text-2xs md:oui-text-xs xl:oui-text-sm\">\n {title}\n </Text>\n <Flex\n direction={\"row\"}\n justify={\"end\"}\n gap={2}\n className=\"oui-flex-1 oui-text-xs md:oui-text-sm xl:oui-text-base\"\n >\n <AutoHideText text={value} />\n <button\n className=\"oui-cursor-pointer oui-text-sm oui-flex-shrink\"\n onClick={() => {\n navigator.clipboard.writeText(value);\n props.onCopy?.(value);\n }}\n >\n <CopyIcon\n size={12}\n color=\"white\"\n className=\"oui-w-[13px] oui-h-[13px] md:oui-w-[14px] md:oui-h-[14px] xl:oui-w-4 xl:oui-h-4\"\n />\n </button>\n </Flex>\n </Flex>\n );\n};\n\nconst Alert: FC<{\n title: string;\n tooltip: any;\n}> = (props) => {\n return (\n <Tooltip content={props.tooltip} className=\"oui-max-w-[200px]\">\n <div\n onClick={() => {\n modal.alert({\n title: props.title,\n message: (\n <div className=\"oui-text-base-contrast/30 oui-space-y-3 oui-text-xs desktop:oui-text-xs\">\n {props.tooltip}\n </div>\n ),\n });\n }}\n >\n <Flex direction={\"column\"}>\n <Text\n intensity={54}\n className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n >\n {props.title}\n </Text>\n <Divider className=\"oui-w-full\" lineStyle=\"dotted\" intensity={16} />\n </Flex>\n </div>\n </Tooltip>\n );\n};\n","import { format, toDate } from \"date-fns\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { toast } from \"@orderly.network/ui\";\n\n// import { toZonedTime } from \"date-fns-tz\";\n// const { toZonedTime } = require(\"date-fns-tz\");\n\nexport function generateReferralLink(referralLinkUrl: string, code: string) {\n return `${referralLinkUrl || window?.location?.origin}?ref=${code}`;\n}\n\nexport async function copyText(content: string) {\n try {\n await navigator.clipboard.writeText(content);\n toast.success(i18n.t(\"common.copy.copied\"));\n } catch (error) {\n toast.success(i18n.t(\"common.copy.failed\"));\n }\n}\n\nexport function parseTime(time?: number | string): Date | null {\n if (!time) {\n return null;\n }\n const timestamp = typeof time === \"number\" ? time : Date.parse(time);\n\n if (!isNaN(timestamp)) {\n return new Date(timestamp);\n }\n\n return null;\n}\n\n//** will be return YYYY-MM-ddThh:mm:ssZ */\nexport function formatDateTimeToUTC(input?: number | string): string {\n if (input === undefined) {\n return \"\";\n }\n const date = toDate(input);\n const utcDate = toUTCDate(date);\n return format(utcDate, \"yyyy-MM-dd HH:mm:ss 'UTC'\");\n}\n\n//** will return yyyy-MM-dd */\nexport function formatYMDTime(time?: number | string): string | undefined {\n if (time === undefined) {\n return undefined;\n }\n const date = toDate(time);\n const utcDate = toUTCDate(date);\n return format(utcDate, \"yyyy-MM-dd\");\n}\n\n//** will return hh:mm */\nexport function formatHMTime(time?: number | string): string | undefined {\n if (time === undefined) {\n return undefined;\n }\n const date = toDate(time);\n const utcDate = toUTCDate(date);\n return format(utcDate, \"hh:mm\");\n}\n\n//** will return MM-dd */\nexport function formatMdTime(time?: number | string): string | undefined {\n if (time === undefined) {\n return undefined;\n }\n const date = toDate(time);\n const utcDate = toUTCDate(date);\n return format(utcDate, \"MM-dd\");\n}\n\n//** compare two date, yyyy-mm-dd */\nexport function compareDate(d1?: Date, d2?: Date) {\n const isEqual =\n d1 &&\n d2 &&\n d1.toISOString().substring(0, 10) === d2.toISOString().substring(0, 10);\n\n return isEqual;\n}\n\nexport function generateData(\n itemCount: number,\n data: any[] | null | undefined,\n timeKey: string,\n valueKey: string,\n): [string, number][] {\n const result: [string, number][] = [];\n\n for (let i = 0; i < itemCount; i++) {\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() - i - 1);\n const currentDateStr = currentDate.toISOString().substring(0, 10);\n\n const matchedData = data?.find((item) => {\n const itemDate = parseTime(item[timeKey]);\n if (!itemDate) {\n return false;\n }\n return itemDate.toISOString().substring(0, 10) === currentDateStr;\n });\n\n if (matchedData) {\n result.push([currentDateStr, matchedData[valueKey]]);\n } else {\n result.push([currentDateStr, 0]);\n }\n }\n\n return result.reverse();\n}\n\nfunction toUTCDate(date: Date): Date {\n return new Date(date.toUTCString());\n}\n","import { useMemo } from \"react\";\nimport { RefferalAPI, useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { toast } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useReferralContext } from \"../../../provider\";\nimport { generateReferralLink } from \"../../../utils/utils\";\n\nexport type ReferralLinkReturns = {\n onCopy?: (value: string) => void;\n refLink?: string;\n refCode?: string;\n earn?: string;\n share?: string;\n brokerName?: string;\n};\n\nexport const useReferralLinkScript = (): ReferralLinkReturns => {\n const { t } = useTranslation();\n\n const onCopy = (value: string) => {\n toast.success(t(\"common.copy.copied\"));\n };\n\n const { referralInfo, referralLinkUrl, overwrite } = useReferralContext();\n const [pinCodes, setPinCodes] = useLocalStorage<string[]>(\n \"orderly_referral_codes\",\n [] as string[],\n );\n\n const codes = useMemo((): RefferalAPI.ReferralCode[] => {\n if (!referralInfo?.referrer_info?.referral_codes)\n return [] as RefferalAPI.ReferralCode[];\n const referralCodes = [...referralInfo?.referrer_info?.referral_codes];\n\n const pinedItems: RefferalAPI.ReferralCode[] = [];\n\n for (let i = 0; i < pinCodes.length; i++) {\n const code = pinCodes[i];\n\n const index = referralCodes.findIndex((item) => item.code === code);\n if (index !== -1) {\n pinedItems.push({ ...referralCodes[index] });\n referralCodes.splice(index, 1);\n }\n }\n\n return [...pinedItems, ...referralCodes];\n }, [referralInfo?.referrer_info?.referral_codes, pinCodes]);\n\n const firstCode = useMemo(() => {\n if (codes.length === 0) {\n return undefined;\n }\n\n return codes[0];\n }, [codes]);\n\n const code = useMemo(() => {\n return firstCode?.code;\n }, [firstCode]);\n\n const referralLink = useMemo(() => {\n if (!firstCode) return \"\";\n\n return generateReferralLink(referralLinkUrl, firstCode.code);\n }, [firstCode]);\n\n const earn = useMemo(() => {\n const value = new Decimal(firstCode?.referrer_rebate_rate || \"0\")\n .mul(100)\n .toDecimalPlaces(0, Decimal.ROUND_DOWN)\n .toString();\n return `${value}%`;\n }, [firstCode?.referrer_rebate_rate]);\n\n const share = useMemo(() => {\n const value = new Decimal(firstCode?.referee_rebate_rate || \"0\")\n .mul(100)\n .toDecimalPlaces(0, Decimal.ROUND_DOWN)\n .toString();\n return `${value}%`;\n }, [firstCode?.referee_rebate_rate]);\n\n return {\n onCopy,\n refLink: referralLink,\n refCode: code,\n share,\n earn,\n brokerName: overwrite?.brokerName ?? overwrite?.shortBrokerName,\n };\n};\n","import { useReferralLinkScript } from \"./referralLink.script\";\nimport { ReferralLink } from \"./referralLink.ui\";\n\nexport const ReferralLinkWidget = () => {\n const state = useReferralLinkScript();\n return <ReferralLink {...state} />;\n};\n","import { FC } from \"react\";\nimport { VolBarChart } from \"@orderly.network/chart\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { Flex, Select, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { TitleStatisticReturns } from \"./titleStatistic.script\";\n\nexport const TitleStatistic: FC<TitleStatisticReturns> = (props) => {\n return (\n <Flex\n id=\"oui-affiliate-affiliate-titleStatistic\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9\"\n >\n <Title {...props} />\n <Flex className=\"oui-h-[170px] 2xl:oui-h-[196px] oui-w-full oui-flex oui-flex-row oui-items-stretch\">\n <VolBarChart\n data={props.dataSource || EMPTY_LIST}\n colors={{ fill: \"rgba(0, 180, 158, 1)\" }}\n className=\"oui-w-full oui-flex-1\"\n tooltip={{\n rm: Decimal.ROUND_DOWN,\n dp: props.volType === \"Commission\" ? 6 : 2,\n }}\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<TitleStatisticReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.statistics\")}</Text>\n <Flex direction={\"row\"} gap={2} className={\"oui-min-w-14\"}>\n <Select.options\n size={\"xs\"}\n value={props.period}\n onValueChange={props.onPeriodChange}\n options={props.periodTypes}\n />\n <Select.options\n size={\"xs\"}\n value={props.volType}\n onValueChange={props.onVolTypeChange}\n options={props.volTypes}\n />\n </Flex>\n </Flex>\n );\n};\n","import { format, subDays } from \"date-fns\";\nimport type { VolChartDataItem } from \"@orderly.network/chart\";\n\nexport function fillData(\n days: number,\n origin?: VolChartDataItem[],\n): VolChartDataItem[] {\n const now = Date();\n const result = new Array(days)\n .fill(0)\n .map<VolChartDataItem>((_, index) => {\n return {\n date: format(subDays(now, index + 1), \"yyyy-MM-dd\"),\n volume: 0,\n opacity: 0,\n };\n })\n .reverse();\n\n const dataObject = origin?.reduce<{ [key: string]: VolChartDataItem }>(\n (acc, curr) => {\n acc[curr.date] = curr;\n return acc;\n },\n {},\n );\n\n for (let index = 0; index < result.length; index++) {\n const element = result[index];\n const originData = dataObject?.[element.date];\n if (originData) {\n result[index] = { ...originData, opacity: originData.volume > 0 ? 1 : 0 };\n }\n }\n\n return result;\n}\n","import { useMemo, useState } from \"react\";\nimport { fillData } from \"../../../utils/chartUtils\";\nimport { RefferalAPI, useReferralRebateSummary } from \"@orderly.network/hooks\";\nimport { format, subDays } from \"date-fns\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport type TitleStatisticReturns = {\n period: string;\n periodTypes: { label: string; value: string }[];\n onPeriodChange: (item: string) => void;\n volType: string;\n volTypes: { label: string; value: string }[];\n onVolTypeChange: (item: string) => void;\n dataSource?: {\n date: string;\n volume: number;\n }[];\n};\n\nexport const useTitleStatisticScript = (): TitleStatisticReturns => {\n const { t } = useTranslation();\n\n const [period, setPeriod] = useState(\"7\");\n\n const periodTypes = [\n { label: t(\"common.select.7d\"), value: \"7\" },\n { label: t(\"common.select.30d\"), value: \"30\" },\n { label: t(\"common.select.90d\"), value: \"90\" },\n ];\n\n const onPeriodChange = (item: string) => {\n setPeriod(item);\n };\n\n const [volType, setVolType] = useState(\"Commission\");\n const volTypes = [\n { label: t(\"affiliate.commission\"), value: \"Commission\" },\n { label: t(\"affiliate.referralVol\"), value: \"ref\" },\n ];\n\n const onVolTypeChange = (item: string) => {\n setVolType(item);\n };\n\n const dateRange = useMemo((): {\n startDate: Date;\n endDate: Date;\n } => {\n if (period === \"7\") {\n return {\n startDate: subDays(new Date(), 7),\n endDate: subDays(new Date(), 1),\n };\n } else if (period === \"30\") {\n return {\n startDate: subDays(new Date(), 30),\n endDate: subDays(new Date(), 1),\n };\n } else if (period === \"90\") {\n return {\n startDate: subDays(new Date(), 90),\n endDate: subDays(new Date(), 1),\n };\n } else {\n return {\n startDate: subDays(new Date(), 7),\n endDate: subDays(new Date(), 1),\n };\n }\n }, [period]);\n\n const [rebateSummary] = useReferralRebateSummary({\n startDate: format(dateRange.startDate, \"yyyy-MM-dd\"),\n endDate: format(dateRange.endDate, \"yyyy-MM-dd\"),\n size: Number(period),\n });\n\n const dataSource = useMemo(() => {\n return (\n (rebateSummary as RefferalAPI.ReferralRebateSummary[] | null)?.map(\n (e) => ({\n date: e.date,\n volume: volType === \"Commission\" ? e.referral_rebate : e.volume,\n })\n ) || []\n ).reverse();\n }, [rebateSummary, volType]);\n\n return {\n period,\n periodTypes,\n onPeriodChange,\n volType,\n volTypes,\n onVolTypeChange,\n dataSource: fillData(Number(period), dataSource),\n };\n};\n","import { useTitleStatisticScript } from \"./titleStatistic.script\";\nimport { TitleStatistic } from \"./titleStatistic.ui\";\n\nexport const TitleStatisticWidget = () => {\n const state = useTitleStatisticScript();\n return <TitleStatistic {...state} />;\n};\n","import { FC, SVGProps } from \"react\";\n\nexport interface IconProps extends SVGProps<SVGSVGElement> {}\n\nexport const EditIcon: FC<IconProps> = (props) => {\n const { className, ...rest } = props;\n return (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"white\"\n fillOpacity=\"0.36\"\n className={className}\n {...rest}\n >\n <path d=\"M8.49773 1.47656C8.36523 1.47656 8.23223 1.52357 8.13823 1.61707C7.86023 1.89507 6.85973 2.89558 6.63773 3.11808L2.13523 7.62059L1.63473 8.12059C1.56523 8.19059 1.52923 8.28958 1.50973 8.38658L1.00973 10.8881C0.939727 11.2381 1.23773 11.5361 1.58773 11.4666C1.90073 11.4036 3.77673 11.0286 4.08923 10.9661C4.18623 10.9466 4.28523 10.9106 4.35523 10.8411L4.85523 10.3406L9.35773 5.83808C9.58023 5.61608 10.5807 4.61506 10.8587 4.33756C10.9522 4.24356 10.9992 4.11056 10.9992 3.97806C10.9992 3.15956 10.7907 2.57456 10.3582 2.13306C9.92173 1.68756 9.33873 1.47656 8.49773 1.47656ZM8.69473 2.48606C9.14623 2.51256 9.43873 2.61608 9.63923 2.82108C9.84423 3.03008 9.97373 3.32008 10.0017 3.76258C9.72773 4.03608 9.32673 4.43106 8.99823 4.75956C8.60173 4.36306 8.11273 3.87407 7.71623 3.47757C8.04523 3.14907 8.42123 2.75956 8.69473 2.48606ZM6.99723 4.19657L8.27923 5.47858L4.49573 9.26207L3.21373 7.98009L6.99723 4.19657ZM2.49473 8.69908L3.77673 9.98107L3.72973 10.0281C3.39973 10.0941 2.73323 10.2336 2.11923 10.3566L2.44773 8.74608L2.49473 8.69908Z\" />\n </svg>\n );\n};\n","import { FC, useState } from \"react\";\nimport { EditIcon } from \"./editIcon\";\n\nexport const EditCode: FC<{\n size?: number;\n onClick?: () => void;\n}> = (props) => {\n return (\n <button>\n <EditIcon\n className=\" oui-mt-px oui-cursor-pointer oui-fill-base-contrast-36 hover:oui-fill-base-contrast-80\"\n fillOpacity={1}\n fill=\"currentColor\"\n onClick={props.onClick}\n />\n </button>\n );\n};\n","import { FC } from \"react\";\nimport { IconProps } from \"../utils/types\";\n\nexport const PinBtn: FC<{\n pinned: boolean;\n size?: number;\n onClick?: (pinned: boolean) => void;\n}> = (props) => {\n return (\n <button\n onClick={(e) => {\n props?.onClick?.(!props.pinned);\n }}\n >\n {props.pinned === false ? (\n <UnPinIcon\n size={props.size}\n fillOpacity={1}\n className=\"orderly-fill-primary-darken hover:orderly-fill-primary-darken/80\"\n />\n ) : (\n <PinnedIcon\n size={props.size}\n fillOpacity={1}\n className=\"orderly-fill-base-contrast-36 hover:orderly-fill-base-contrast\"\n />\n )}\n </button>\n );\n};\n\nconst PinnedIcon: FC<IconProps> = (props) => {\n const { size = 12 } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n // fill=\"none\"\n fill=\"#608CFF\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M10.008 1.302a.74.74 0 0 0-.486.215c-1.033.988-1.349 1.815-.972 2.947-.88.675-1.437.841-2.536.841-1.503 0-2.484.181-3.152.848v.021a1.583 1.583 0 0 0 0 2.249l1.867 1.881-3.181 3.18c-.26.26-.28.696-.02.956.261.26.699.26.959 0l3.193-3.193 1.87 1.86a1.585 1.585 0 0 0 2.25 0h.02c.668-.667.854-1.522.854-3.144 0-1.03.212-1.758.853-2.523 1.232.361 1.95.015 2.96-.995a.68.68 0 0 0 .188-.479c0-.234-.06-.594-.209-1.041a5.34 5.34 0 0 0-1.312-2.103A5.35 5.35 0 0 0 11.05 1.51c-.448-.149-.808-.208-1.042-.208\" />\n </svg>\n );\n};\n\nconst UnPinIcon: FC<IconProps> = (props) => {\n const { size = 12 } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M10.008 1.302a.74.74 0 0 0-.486.215c-1.033.988-1.349 1.815-.972 2.947-.88.675-1.437.841-2.536.841-1.503 0-2.484.181-3.152.848v.021a1.583 1.583 0 0 0 0 2.249l1.867 1.881-3.181 3.18c-.26.26-.28.696-.02.956.261.26.699.26.959 0l3.193-3.193 1.87 1.86a1.585 1.585 0 0 0 2.25 0h.02c.668-.667.854-1.522.854-3.144 0-1.03.212-1.758.853-2.523 1.232.361 1.95.015 2.96-.995a.68.68 0 0 0 .188-.479c0-.234-.06-.594-.209-1.041a5.34 5.34 0 0 0-1.312-2.103A5.35 5.35 0 0 0 11.05 1.51c-.448-.149-.808-.208-1.042-.208m.258 1.37c.708.131 1.421.6 1.93 1.108.507.507.94 1.13 1.119 1.944-.636.61-1.026.659-1.662.324a.67.67 0 0 0-.779.116c-1.214 1.213-1.533 2.314-1.533 3.8 0 1.293-.076 1.774-.48 2.207-.113.123-.27.104-.374 0L3.799 7.486a.24.24 0 0 1-.017-.34c.239-.29.769-.514 2.226-.514 1.742.001 2.668-.447 3.812-1.52a.67.67 0 0 0 .125-.77c-.343-.685-.29-1.046.321-1.67\" />\n </svg>\n );\n};\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n DataTable,\n Divider,\n Flex,\n ListView,\n Statistic,\n Text,\n cn,\n Column,\n CopyIcon,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { EditCode } from \"../../../components/editCodeBtn\";\nimport { EditIcon } from \"../../../components/editIcon\";\nimport { PinBtn } from \"../../../components/pinButton\";\nimport { ReferralCodesReturns, ReferralCodeType } from \"./referralCodes.script\";\n\nexport const ReferralCodes: FC<ReferralCodesReturns> = (props) => {\n const isTablet = useMediaQuery(\"(max-width: 767px)\");\n return (\n <Flex\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-h-full oui-bg-base-9 oui-p-6 oui-tabular-nums\"\n >\n <Title {...props} />\n\n <div className=\"oui-flex oui-w-full oui-flex-col 2xl:oui-h-full\">\n <Divider />\n {isTablet ? <MobileLayout {...props} /> : <DesktopLayout {...props} />}\n </div>\n </Flex>\n );\n};\n\nconst Title: FC<ReferralCodesReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.referralCodes\")}</Text>\n <div className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\">\n <Text className=\"oui-text-base-contrast-54\">\n {`${t(\"affiliate.referralCodes.remaining\")}: `}\n </Text>\n <Text className=\"oui-text-primary-light\">\n {props.codes?.length || \"--\"}\n </Text>\n </div>\n </Flex>\n );\n};\n\nconst MobileLayout: FC<ReferralCodesReturns> = (props) => {\n return (\n <ListView\n dataSource={props.codes}\n className=\"oui-max-h-[240px] oui-w-full\"\n renderItem={(e, index) => {\n return (\n <Flex direction={\"column\"}>\n <MobileCell\n key={index}\n data={e}\n editRate={props.editRate}\n copyLink={props.copyLink}\n copyCode={props.copyCode}\n setPinCode={props.setPinCode}\n editCode={props.editCode}\n />\n <Divider className=\"oui-mt-3 oui-w-full\" />\n </Flex>\n );\n }}\n />\n );\n};\n\nconst MobileCellItem: FC<{\n // key: string;\n title: string;\n value: string | ReactNode;\n copyable?: boolean;\n align?: \"start\" | \"end\" | undefined;\n className?: string;\n editRate?: () => void;\n onCopy?: () => void;\n}> = (props) => {\n const { title, copyable, value, align, className, editRate, onCopy } = props;\n return (\n <Statistic\n id=\"oui-affiliate-affiliate-referralCodes\"\n className={cn(\"oui-flex-1\", className)}\n label={\n <Text className=\"oui-text-2xs oui-text-base-contrast-36\">{title}</Text>\n }\n align={align}\n children={\n <Flex direction={\"row\"} gap={1}>\n <Text.formatted\n copyable={copyable}\n onCopy={() => {\n onCopy?.();\n }}\n className=\"oui-mt-[6px] oui-text-sm oui-text-base-contrast-80\"\n >\n {value as string}\n </Text.formatted>\n {editRate && (\n <EditIcon\n className=\"oui-mt-px oui-cursor-pointer oui-fill-white/[.36] hover:oui-fill-white/80\"\n fillOpacity={1}\n fill=\"currentColor\"\n onClick={() => editRate()}\n />\n )}\n </Flex>\n }\n />\n );\n};\nconst MobileCell: FC<{\n data: ReferralCodeType;\n setPinCode: (code: string, del?: boolean) => void;\n copyLink: (code: string) => void;\n copyCode: (code: string) => void;\n editRate: (code: ReferralCodeType) => void;\n editCode: (code: ReferralCodeType) => void;\n}> = (props) => {\n const { data, setPinCode, copyLink, editRate, editCode } = props;\n const { t } = useTranslation();\n\n return (\n <Flex key={data.code} gap={3} direction={\"column\"} className=\"oui-w-full\">\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n itemAlign={\"stretch\"}\n width={\"100%\"}\n >\n <MobileCellItem\n title={t(\"affiliate.referralCode\")}\n value={data.code}\n copyable\n onCopy={() => {\n props.copyCode?.(data.code);\n }}\n editRate={() => {\n editCode(data);\n }}\n />\n <MobileCellItem\n title={t(\"affiliate.referralCodes.column.you&Referee\")}\n value={getRate(data)}\n align=\"end\"\n editRate={() => {\n editRate(data);\n }}\n />\n <MobileCellItem\n title={t(\"affiliate.referralCodes.column.referees&Traders\")}\n value={getCount(data)}\n align=\"end\"\n className={\"oui-hidden md:oui-flex\"}\n />\n </Flex>\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n itemAlign={\"stretch\"}\n width={\"100%\"}\n className=\"md:oui-hidden\"\n >\n <MobileCellItem\n title={t(\"affiliate.referees\")}\n value={getCount(data).split(\"/\")?.[0]}\n align=\"start\"\n />\n <MobileCellItem\n title={t(\"affiliate.referralCodes.column.traders\")}\n value={getCount(data).split(\"/\")?.[1]}\n align=\"end\"\n />\n </Flex>\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n itemAlign={\"stretch\"}\n width={\"100%\"}\n >\n <PinBtn\n pinned={data.isPined || false}\n onClick={(e) => {\n setPinCode(data.code, !e);\n }}\n />\n <Button\n variant=\"outlined\"\n size=\"xs\"\n className=\"oui-px-[20px]\"\n onClick={(e) => {\n copyLink(data.code);\n }}\n >\n {t(\"affiliate.referralCodes.copyLink\")}\n </Button>\n </Flex>\n </Flex>\n );\n};\n\nconst DesktopLayout: FC<ReferralCodesReturns> = (props) => {\n const { t } = useTranslation();\n\n const moreColumn = useMediaQuery(\"(min-width: 1024px)\");\n\n const columns = useMemo(() => {\n const cols: Column[] = [\n {\n title: t(\"affiliate.referralCode\"),\n dataIndex: \"code\",\n width: moreColumn ? 115 : 120,\n className: \"!oui-px-0\",\n render: (value, data) => {\n return (\n <Flex direction={\"row\"} itemAlign={\"center\"} gap={1}>\n <PinBtn\n size={12}\n pinned={data.isPined || false}\n onClick={(e) => {\n props.setPinCode(data.code, !e);\n }}\n />\n <Text.formatted\n // rule={\"\"}\n suffix={\n <>\n {data.isAutoGenerated && data.total_invites < 1 && (\n <EditCode onClick={() => props.editCode?.(data)} />\n )}\n <CopyIcon\n className=\"oui-cursor-pointer\"\n size={12}\n color=\"white\"\n onClick={() => props.copyCode?.(data.code)}\n />\n </>\n }\n copyable\n onCopy={() => {\n props.copyCode?.(data.code);\n }}\n >\n {value}\n </Text.formatted>\n </Flex>\n );\n },\n },\n {\n title: t(\"affiliate.referralCodes.column.you&Referee\"),\n dataIndex: \"dffd\",\n width: moreColumn ? 120 : 120,\n className: \"oui-pr-0\",\n render: (value, data) => {\n return (\n <Flex direction={\"row\"} itemAlign={\"center\"} gap={1}>\n {getRate(data)}\n <EditIcon\n className=\"oui-mt-[6px] oui-cursor-pointer oui-fill-white/[.36] hover:oui-fill-white/80\"\n fillOpacity={1}\n fill=\"currentColor\"\n onClick={(e) => props.editRate?.(data)}\n />\n </Flex>\n );\n },\n },\n ];\n\n if (moreColumn) {\n cols.push({\n title: t(\"affiliate.referees\"),\n dataIndex: \"referee_rebate_rate\",\n width: 65,\n className: \"oui-pr-0\",\n render: (value, data) => getCount(data).split(\"/\")[0],\n });\n cols.push({\n title: t(\"affiliate.referralCodes.column.traders\"),\n dataIndex: \"referrer_rebate_rate\",\n width: 65,\n className: \"oui-pr-0\",\n render: (value, data) => getCount(data).split(\"/\")[1],\n });\n } else {\n cols.push({\n title: t(\"affiliate.referralCodes.column.referees&Traders\"),\n dataIndex: \"total_invites/total_traded\",\n width: 120,\n fixed: \"left\",\n render: (value, data) => getCount(data),\n });\n }\n\n cols.push({\n dataIndex: \"link\",\n align: \"right\",\n width: 74,\n className: \"!oui-px-0\",\n render: (value, data) => (\n <Button\n variant=\"outlined\"\n size=\"sm\"\n className=\"oui-px-5\"\n onClick={(e) => {\n props?.copyLink?.(data.code);\n }}\n >\n {t(\"affiliate.referralCodes.copyLink\")}\n </Button>\n ),\n });\n\n return cols;\n }, [moreColumn, t]);\n\n return (\n <DataTable\n bordered\n columns={columns}\n dataSource={props.codes}\n classNames={{\n header: \"oui-px-0\",\n root: \"2xl:oui-flex-1 2xl:oui-max-h-[230px] 3xl:oui-max-h-[300px]\",\n }}\n onRow={(record) => {\n return {\n className: \"oui-h-[45px]\",\n };\n }}\n />\n );\n};\n\nconst getRate = (item: ReferralCodeType) => {\n const refereeRate = new Decimal(item.referee_rebate_rate)\n .mul(100)\n .toFixed(1, Decimal.ROUND_DOWN)\n .toString();\n const referralRate = new Decimal(item.referrer_rebate_rate)\n .mul(100)\n .toFixed(1, Decimal.ROUND_DOWN)\n .toString();\n return `${referralRate}% / ${refereeRate}%`;\n};\n\nconst getCount = (item: ReferralCodeType) => {\n return `${item.total_invites} / ${item.total_traded}`;\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useMutation } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n inputFormatter,\n modal,\n SimpleDialog,\n TextField,\n Text,\n useModal,\n Flex,\n cn,\n toast,\n} from \"@orderly.network/ui\";\nimport { ReferralCodeType } from \"./referralCodes.script\";\n\nexport const EditCodeModal = modal.create<{\n code: ReferralCodeType;\n successCallback: () => void;\n}>((props) => {\n const { t } = useTranslation();\n const { visible, onOpenChange } = useModal();\n const [newCode, setNewCode] = useState<string>(\"\");\n const [filedError, setFiledError] = useState<{\n length: boolean;\n format: boolean;\n }>({\n length: false,\n format: false,\n });\n const [editCode, { error, isMutating }] = useMutation(\n \"/v1/referral/edit_referral_code\",\n \"POST\",\n );\n useEffect(() => {\n setNewCode(props.code.code);\n }, [props.code]);\n\n useEffect(() => {\n const _code = newCode.toUpperCase();\n const _fieldError = {\n length: false,\n format: false,\n };\n if (_code.length < 4 || _code.length > 10) {\n _fieldError.length = true;\n }\n if (!/^[A-Z0-9]+$/.test(_code)) {\n _fieldError.format = true;\n }\n setFiledError(_fieldError);\n }, [newCode]);\n\n return (\n <SimpleDialog\n classNames={{\n content: \"oui-max-w-[360px]\",\n }}\n title={<div>{t(\"affiliate.referralCode.editCodeModal.title\")}</div>}\n open={visible}\n onOpenChange={onOpenChange}\n actions={{\n primary: {\n loading: isMutating,\n disabled: filedError.length || filedError.format,\n label: t(\"common.confirm\"),\n onClick: async () => {\n try {\n const res = await editCode({\n current_referral_code: props.code.code,\n new_referral_code: newCode.toUpperCase(),\n });\n if (res.success) {\n toast.success(\n t(\"affiliate.referralCode.editCodeModal.success\"),\n );\n props.successCallback();\n onOpenChange(false);\n return;\n }\n toast.error(res.message);\n } catch (e) {\n console.log(\"edit referral code error\", e);\n }\n },\n },\n }}\n >\n <div className=\"oui-mb-6 oui-text-xs oui-text-base-contrast-54\">\n {t(\"affiliate.referralCode.editCodeModal.description\")}\n </div>\n <TextField\n placeholder=\"\"\n fullWidth\n label={t(\"affiliate.referralCode.editCodeModal.label\")}\n onClean={() => {\n setNewCode(\"\");\n }}\n value={newCode}\n onChange={(e) => {\n const _value = e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, \"\");\n setNewCode(_value);\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter((value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n }),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input:\n \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n maxLength={10}\n minLength={4}\n autoComplete=\"off\"\n helpText=\"\"\n />\n <Flex\n direction={\"column\"}\n justify={\"center\"}\n itemAlign={\"start\"}\n gap={1}\n className=\"oui-mt-3\"\n >\n <Text\n className={cn(\n \"oui-ml-4 oui-list-item oui-list-outside oui-list-disc oui-text-xs oui-text-base-contrast-36 marker:oui-text-3xs\",\n filedError.length ? \"oui-text-danger\" : \"oui-text-success\",\n )}\n >\n {t(\"affiliate.referralCode.editCodeModal.helpText.length\")}\n </Text>\n <Text\n className={cn(\n \"oui-ml-4 oui-list-item oui-list-outside oui-list-disc oui-text-xs oui-text-base-contrast-36 marker:oui-text-3xs\",\n \"oui-text-success\",\n )}\n >\n {t(\"affiliate.referralCode.editCodeModal.helpText.format\")}\n </Text>\n </Flex>\n </SimpleDialog>\n );\n});\n","import { useEffect, useRef, useState } from \"react\";\nimport { cleanStringStyle, useMutation } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n cn,\n Dialog,\n DialogContent,\n DialogTitle,\n Divider,\n Flex,\n Input,\n modal,\n toast,\n useModal,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { ReferralCodeType } from \"./referralCodes.script\";\n\nexport const EditReferralRate = modal.create<{\n code: ReferralCodeType;\n mutate: any;\n}>((props) => {\n const { code, mutate } = props;\n const { visible, hide, resolve, reject, onOpenChange } = useModal();\n const maxRate = new Decimal(code.max_rebate_rate).mul(100);\n const [refereeRebateRate, setRefereeRebateRate] = useState(\n `${new Decimal(code.referee_rebate_rate).mul(100)}`,\n );\n const [referrerRebateRate, setReferrerRebateRate] = useState(\n `${new Decimal(code.referrer_rebate_rate).mul(100)}`,\n );\n const [showError, setShowError] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (inputRef?.current) {\n inputRef.current.focus();\n inputRef.current.setSelectionRange(\n inputRef.current.value.length,\n inputRef.current.value.length,\n );\n }\n }, [inputRef]);\n\n useEffect(() => {\n setRefereeRebateRate(`${new Decimal(code.referee_rebate_rate).mul(100)}`);\n setReferrerRebateRate(`${new Decimal(code.referrer_rebate_rate).mul(100)}`);\n }, [code]);\n\n const [editRate, { error, isMutating }] = useMutation(\n \"/v1/referral/edit_split\",\n \"POST\",\n );\n\n const onClickConfirm = async () => {\n try {\n const r1 = Number.parseFloat(refereeRebateRate);\n const r2 = Number.parseFloat(referrerRebateRate);\n\n await editRate({\n referral_code: code.code,\n referee_rebate_rate: r1 / 100,\n referrer_rebate_rate: r2 / 100,\n });\n toast.success(t(\"affiliate.referralRate.editRateModal.success\"));\n mutate();\n hide();\n } catch (e) {\n // @ts-ignore\n toast.error(e?.message || e || \"\");\n }\n };\n\n return (\n <Dialog open={visible} onOpenChange={onOpenChange}>\n <DialogContent\n className=\"oui-px-6 oui-max-w-[320px] oui-bg-base-8 oui-shadow-[0px_12px_20px_0px_rgba(0,0,0,0.25)]\"\n closable\n >\n <DialogTitle>\n <div className=\"oui-my-3\">\n {t(\"affiliate.referralRate.editRateModal.title\")}\n </div>\n <Divider />\n </DialogTitle>\n\n <div className=\"oui-mt-3 oui-h-full oui-flex oui-flex-col oui-justify-end\">\n <div className=\"oui-text-xs oui-text-base-contrast-54\">\n {t(\"affiliate.referralRate.editRateModal.description\")}\n </div>\n <div className=\"oui-text-xs oui-text-base-contrast-80 oui-mt-2 oui-flex\">\n {t(\"affiliate.referralRate.editRateModal.label\")}\n <div className=\"oui-text-warning-darken oui-pl-1\">{`${new Decimal(\n code.max_rebate_rate,\n )\n .mul(100)\n .toFixed(0, Decimal.ROUND_DOWN)}%`}</div>\n </div>\n\n <div className=\"oui-text-2xs oui-mt-6 oui-text-base-contrast-80\">\n {t(\"affiliate.referralRate.editRateModal.label.you\")}\n </div>\n <Input\n ref={inputRef}\n containerClassName=\"oui-h-[40px] oui-mt-3 oui-bg-base-700 oui-outline oui-outline-1 oui-outline-base-contrast-12 focus-within:oui-outline-primary-darken\"\n placeholder=\"Enter code\"\n type=\"text\"\n inputMode=\"decimal\"\n autoComplete=\"off\"\n value={referrerRebateRate}\n onChange={(e) => {\n const text = cleanStringStyle(e.target.value);\n const rate = Number.parseFloat(text);\n setReferrerRebateRate(text);\n if (!Number.isNaN(rate)) {\n setRefereeRebateRate(\n `${maxDecimal(new Decimal(0), maxRate.sub(rate))}`,\n );\n setShowError(maxRate.sub(rate) < new Decimal(0));\n } else {\n setRefereeRebateRate(\"\");\n setReferrerRebateRate(\"\");\n }\n }}\n suffix={\n <div className=\"oui-px-3 oui-text-base-contrast-54 oui-text-base\">\n %\n </div>\n }\n color={showError ? \"danger\" : undefined}\n />\n\n <div className=\"oui-text-2xs oui-mt-6 oui-text-base-contrast-80\">\n {t(\"affiliate.referralRate.editRateModal.label.referee\")}\n </div>\n <Input\n containerClassName=\"oui-h-[40px] oui-mt-3 oui-bg-base-700 oui-outline oui-outline-1 oui-outline-base-contrast-12 focus-within:oui-outline-primary-darken\"\n placeholder=\"Enter code\"\n type=\"text\"\n inputMode=\"decimal\"\n autoComplete=\"off\"\n autoFocus={false}\n value={refereeRebateRate}\n onChange={(e) => {\n const text = cleanStringStyle(e.target.value);\n const rate = Number.parseFloat(text);\n setRefereeRebateRate(text);\n if (!Number.isNaN(rate)) {\n setReferrerRebateRate(\n `${maxDecimal(new Decimal(0), maxRate.sub(rate))}`,\n );\n setShowError(maxRate.sub(rate) < new Decimal(0));\n } else {\n setRefereeRebateRate(\"\");\n setReferrerRebateRate(\"\");\n }\n }}\n suffix={\n <div className=\"oui-px-3 oui-text-base-contrast-54 oui-text-base\">\n %\n </div>\n }\n color={showError ? \"danger\" : undefined}\n />\n\n {showError && (\n <div className=\"oui-text-danger oui-text-xs oui-mt-8 oui-text-center oui-px-4\">\n {t(\"affiliate.referralRate.editRateModal.helpText.max\")}\n </div>\n )}\n\n <Flex width={\"100%\"} justify={\"center\"}>\n <Button\n id=\"referral_bind_referral_code_btn\"\n disabled={\n refereeRebateRate.length === 0 ||\n referrerRebateRate.length === 0 ||\n showError\n }\n loading={isMutating}\n className={cn(\n \"oui-mt-8 oui-mb-4 oui-w-[154px]\",\n showError && \"oui-mt-3\",\n )}\n onClick={(e) => {\n e.stopPropagation();\n onClickConfirm();\n }}\n >\n {t(\"common.confirm\")}\n </Button>\n </Flex>\n </div>\n </DialogContent>\n </Dialog>\n );\n});\n\nfunction maxDecimal(a: Decimal, b: Decimal) {\n return a > b ? a : b;\n}\n","import { useMemo } from \"react\";\nimport { RefferalAPI, useLocalStorage } from \"@orderly.network/hooks\";\nimport { modal } from \"@orderly.network/ui\";\nimport { useReferralContext } from \"../../../provider\";\nimport { copyText, generateReferralLink } from \"../../../utils/utils\";\nimport { EditCodeModal } from \"./editCodeModal\";\nimport { EditReferralRate } from \"./editReferralRate\";\n\nexport type ReferralCodeType = RefferalAPI.ReferralCode & {\n isPined?: boolean;\n isAutoGenerated?: boolean;\n};\n\nexport type ReferralCodesReturns = {\n copyCode: (code: string) => void;\n copyLink: (code: string) => void;\n editRate: (code: ReferralCodeType) => void;\n editCode: (code: ReferralCodeType) => void;\n setPinCode: (code: string, del?: boolean) => void;\n codes?: ReferralCodeType[];\n};\n\nexport const useReferralCodesScript = (): ReferralCodesReturns => {\n const { referralInfo, referralLinkUrl, mutate, generateCode } =\n useReferralContext();\n\n const copyLink = (code: string) => {\n copyText(generateReferralLink(referralLinkUrl, code));\n };\n const copyCode = (code: string) => {\n copyText(code);\n };\n const editRate = (code: ReferralCodeType) => {\n modal.show(EditReferralRate, { code: { ...code }, mutate });\n };\n\n const editCode = (code: ReferralCodeType) => {\n modal.show(EditCodeModal, {\n code: { ...code },\n successCallback: () => {\n mutate();\n },\n });\n };\n\n const [pinCodes, setPinCodes] = useLocalStorage<string[]>(\n \"orderly_referral_codes\",\n [] as string[],\n );\n const setPinCode = (code: string, del?: boolean) => {\n if (del) {\n const index = pinCodes.findIndex((item: string) => item === code);\n if (index !== -1) {\n pinCodes.splice(index, 1);\n }\n } else {\n pinCodes.splice(0, 0, code);\n }\n\n if (pinCodes.length > 6) {\n pinCodes.splice(pinCodes.length - 1, 1);\n }\n\n setPinCodes([...pinCodes]);\n };\n\n const codes = useMemo((): ReferralCodeType[] | undefined => {\n if (!referralInfo?.referrer_info?.referral_codes) {\n return undefined;\n }\n\n const referralCodes: ReferralCodeType[] =\n referralInfo?.referrer_info?.referral_codes?.map((item) => {\n // todo check auto generated\n if (generateCode && generateCode.code === item.code) {\n (item as ReferralCodeType).isAutoGenerated = true;\n }\n\n return item;\n });\n const pinedItems: ReferralCodeType[] = [];\n\n for (let i = 0; i < pinCodes.length; i++) {\n const code = pinCodes[i];\n\n const index = referralCodes.findIndex((item) => item.code === code);\n if (index !== -1) {\n pinedItems.push({ ...referralCodes[index], isPined: true });\n referralCodes.splice(index, 1);\n }\n }\n return [...pinedItems, ...referralCodes];\n }, [referralInfo?.referrer_info?.referral_codes, pinCodes, generateCode]);\n\n return {\n copyCode,\n copyLink,\n editRate,\n editCode,\n setPinCode,\n codes,\n };\n};\n","import { useReferralCodesScript } from \"./referralCodes.script\";\nimport { ReferralCodes } from \"./referralCodes.ui\";\n\nexport const ReferralCodesWidget = () => {\n const state = useReferralCodesScript();\n return <ReferralCodes {...state} />;\n};\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { RefferalAPI, useMediaQuery } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n DatePicker,\n Divider,\n Flex,\n ListView,\n Statistic,\n TabPanel,\n Column,\n Tabs,\n Text,\n cn,\n} from \"@orderly.network/ui\";\nimport { AuthGuardDataTable } from \"@orderly.network/ui-connector\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { DateRange } from \"../../../utils/types\";\nimport { formatYMDTime } from \"../../../utils/utils\";\nimport { CommissionAndRefereesReturns } from \"./commissionAndReferees.script\";\n\nexport const CommissionAndReferees: FC<CommissionAndRefereesReturns> = (\n props,\n) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-affiliate-commissionAndReferees\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9 oui-tabular-nums\"\n >\n <Tabs defaultValue=\"account\" className=\"oui-w-full\" variant=\"contained\">\n <TabPanel value=\"account\" title={t(\"affiliate.commission\")}>\n <CommissionList {...props} />\n </TabPanel>\n <TabPanel value=\"password\" title={t(\"affiliate.myReferees\")}>\n <RefereesList {...props} />\n </TabPanel>\n </Tabs>\n </Flex>\n );\n};\n\nconst MobileCellItem: FC<{\n title: string;\n value: string | ReactNode;\n align?: \"start\" | \"end\" | undefined;\n className?: string;\n rule?: \"address\" | \"date\";\n formatString?: string;\n prefix?: string;\n}> = (props) => {\n const { title, value, align, className, rule, formatString, prefix } = props;\n return (\n <Statistic\n className={cn(\"oui-flex-1\", className)}\n label={\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">{title}</Text>\n }\n align={align}\n children={\n <Text.formatted\n rule={rule || \"\"}\n // @ts-ignore\n formatString={formatString}\n prefix={prefix}\n className=\"oui-text-base-contrast-80 oui-text-sm oui-mt-[6px]\"\n >\n {value}\n </Text.formatted>\n }\n />\n );\n};\n\nconst CommissionList: FC<CommissionAndRefereesReturns> = (props) => {\n const { t } = useTranslation();\n const isLG = useMediaQuery(\"(max-width: 767px)\");\n\n const columns = useMemo(() => {\n const cols: Column[] = [\n {\n title: `${t(\"affiliate.commission\")} (USDC)`,\n dataIndex: \"referral_rebate\",\n render: (value) => (\n <Text>\n {commifyOptional(value, {\n fix: 6,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n ),\n width: 216,\n },\n {\n title: `${t(\"affiliate.referralVol\")} (USDC)`,\n dataIndex: \"volume\",\n render: (value) => (\n <Text>\n {commifyOptional(value, {\n fix: 2,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n ),\n width: 216,\n },\n {\n title: t(\"affiliate.commission.column.activeUsers\"),\n dataIndex: \"daily_traded_referral\",\n render: (value) => <Text>{value}</Text>,\n width: 216,\n },\n {\n title: t(\"common.date\"),\n dataIndex: \"date\",\n render: (value) => formatYMDTime(value),\n width: 216,\n },\n ];\n\n return cols;\n }, [t]);\n\n const body = useMemo(() => {\n if (isLG) {\n return (\n <ListView<\n RefferalAPI.ReferralRebateSummary,\n RefferalAPI.ReferralRebateSummary[]\n >\n className=\"oui-max-h-[200px] oui-w-full\"\n dataSource={props.commission.data}\n loadMore={props.commission.loadMore}\n isLoading={props.commission.isLoading}\n renderItem={(e) => {\n return (\n <div>\n <Flex direction={\"row\"} width={\"100%\"}>\n <MobileCellItem\n title={t(\"affiliate.commission\")}\n value={commifyOptional(e.referral_rebate, {\n fix: 6,\n fallback: \"0\",\n padEnd: true,\n })}\n prefix=\"$\"\n />\n <MobileCellItem\n title={t(\"affiliate.referralVol\")}\n value={commifyOptional(e.volume, {\n fix: 2,\n fallback: \"0\",\n padEnd: true,\n })}\n prefix=\"$\"\n />\n <MobileCellItem\n title={t(\"affiliate.commission.column.activeUsers\")}\n value={e.daily_traded_referral}\n />\n <MobileCellItem\n title={t(\"common.date\")}\n value={e.date}\n rule=\"date\"\n formatString=\"yyyy-MM-dd\"\n align=\"end\"\n />\n </Flex>\n <Divider className=\"oui-mt-3 oui-w-full\" />\n </div>\n );\n }}\n />\n );\n }\n\n return (\n <AuthGuardDataTable\n bordered\n columns={columns}\n loading={props.commission.isLoading}\n ignoreLoadingCheck={true}\n dataSource={props.commission.data}\n pagination={props.commission.pagination}\n onRow={(record) => {\n return {\n className: \"oui-h-[41px]\",\n };\n }}\n />\n );\n }, [isLG, props.commission]);\n\n return (\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <DateFiler\n value={props.commission.dateRange}\n setValue={props.commission.setDateRange}\n />\n {body}\n </Flex>\n );\n};\n\nconst RefereesList: FC<CommissionAndRefereesReturns> = (props) => {\n const { t } = useTranslation();\n\n const isLG = useMediaQuery(\"(max-width: 767px)\");\n\n const columns = useMemo(() => {\n const cols: Column[] = [\n {\n title: t(\"affiliate.referees.column.refereeAddress\"),\n dataIndex: \"user_address\",\n render: (value) => (\n <Text.formatted rule={\"address\"}>{value}</Text.formatted>\n ),\n className: \"oui-w-1/5\",\n },\n {\n title: t(\"affiliate.referralCode\"),\n dataIndex: \"referral_code\",\n // render: (value) => value,\n className: \"oui-w-1/5\",\n },\n {\n title: `${t(\"affiliate.referees.column.totalCommission\")} (USDC)`,\n dataIndex: \"referral_rebate\",\n render: (value) => (\n <Text>\n {commifyOptional(value, { fix: 6, prefix: \"$\", padEnd: true })}\n </Text>\n ),\n className: \"oui-w-1/5\",\n },\n {\n title: `${t(\"affiliate.referees.column.totalVol\")} (USDC)`,\n dataIndex: \"volume\",\n render: (value) => (\n <Text>\n {commifyOptional(value, { fix: 2, prefix: \"$\", padEnd: true })}\n </Text>\n ),\n className: \"oui-w-1/5\",\n },\n {\n title: t(\"affiliate.referees.column.invitationTime\"),\n dataIndex: \"code_binding_time\",\n render: (value) => (\n <Text.formatted\n rule={\"date\"}\n formatString=\"yyyy-MM-dd\"\n children={value}\n />\n ),\n className: \"oui-w-1/5\",\n },\n ];\n\n return cols;\n }, [t]);\n\n const body = useMemo(() => {\n if (isLG) {\n return (\n <ListView<RefferalAPI.RefereeInfoItem, RefferalAPI.RefereeInfoItem[]>\n className=\"oui-w-full oui-max-h-[200px]\"\n dataSource={props.referees.data}\n loadMore={props.referees.loadMore}\n isLoading={props.referees.isLoading}\n renderItem={(e, index) => {\n return (\n <Flex\n key={index}\n direction={\"column\"}\n gap={3}\n className=\"oui-border-b-2 oui-border-line-6 oui-pb-3\"\n >\n <Flex direction={\"row\"} width={\"100%\"}>\n <MobileCellItem\n title={t(\"affiliate.referralCode\")}\n value={e.referral_code}\n />\n <MobileCellItem\n title={`${t(\n \"affiliate.referees.column.totalCommission\",\n )} (USDC)`}\n value={commifyOptional(e.referral_rebate, {\n fix: 6,\n prefix: \"$\",\n padEnd: true,\n })}\n className=\"oui-min-w-[102px]\"\n />\n <MobileCellItem\n title={t(\"affiliate.referees.column.totalVol\")}\n value={commifyOptional(e.volume, {\n fix: 2,\n prefix: \"$\",\n padEnd: true,\n })}\n align=\"end\"\n />\n </Flex>\n <Flex direction={\"row\"} pt={3} gap={3} width={\"100%\"}>\n <MobileCellItem\n title={t(\"affiliate.referees.column.refereeAddress\")}\n value={e.user_address}\n rule=\"address\"\n />\n <MobileCellItem\n title={t(\"affiliate.referees.column.invitationTime\")}\n value={e.code_binding_time}\n align=\"end\"\n rule=\"date\"\n formatString=\"yyyy-MM-dd\"\n />\n </Flex>\n {/* <Divider /> */}\n </Flex>\n );\n }}\n />\n );\n }\n\n return (\n <AuthGuardDataTable\n bordered\n loading={props.referees.isLoading}\n ignoreLoadingCheck={true}\n columns={columns}\n dataSource={props.referees.data}\n pagination={props.referees.pagination}\n onRow={(record) => {\n return {\n className: \"oui-h-[41px]\",\n };\n }}\n />\n );\n }, [isLG, props.referees]);\n\n return (\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n {/* <DateFiler\n value={props.referees.dateRange}\n setValue={props.referees.setDateRange}\n /> */}\n {body}\n </Flex>\n );\n};\n\nconst DateFiler: FC<{\n value?: DateRange;\n setValue: any;\n}> = (props) => {\n return (\n <Flex width={\"100%\"} height={49} className=\"oui-border-b oui-border-line-6\">\n <div>\n <DatePicker.range\n size=\"xs\"\n value={props.value}\n onChange={(range) => {\n props.setValue(range);\n }}\n max={90}\n disabled={{\n after: new Date(),\n }}\n />\n </div>\n </Flex>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { DateRange } from \"../../../utils/types\";\nimport { format, subDays } from \"date-fns\";\nimport {\n RefferalAPI,\n useMediaQuery,\n useRefereeInfo,\n useReferralRebateSummary,\n} from \"@orderly.network/hooks\";\nimport { PaginationMeta, usePagination } from \"@orderly.network/ui\";\n\nexport type ListReturns<T> = {\n data: T;\n dateRange?: DateRange;\n setDateRange: React.Dispatch<React.SetStateAction<DateRange | undefined>>;\n isLoading?: boolean;\n loadMore?: () => void;\n pagination: PaginationMeta;\n};\n\nexport type CommissionAndRefereesReturns = {\n commission: ListReturns<RefferalAPI.ReferralRebateSummary[] | undefined>;\n referees: ListReturns<RefferalAPI.RefereeInfoItem[] | undefined>;\n};\n\nexport const useCommissionAndRefereesScript =\n (): CommissionAndRefereesReturns => {\n const commission = useCommissionDataScript();\n const referees = useRefereesDataScript();\n\n return {\n commission,\n referees,\n };\n };\n\nconst useCommissionDataScript = (): ListReturns<\n RefferalAPI.ReferralRebateSummary[] | undefined\n> => {\n const [commissionRange, setCommissionRange] = useState<DateRange | undefined>(\n {\n from: subDays(new Date(), 90),\n to: subDays(new Date(), 1),\n }\n );\n\n const isLG = useMediaQuery(\"(max-width: 767px)\");\n\n const { page, pageSize, setPage, parsePagination } = usePagination();\n\n const [commissionData, { refresh, isLoading, loadMore, meta }] =\n useReferralRebateSummary({\n startDate:\n commissionRange?.from !== undefined\n ? format(commissionRange.from, \"yyyy-MM-dd\")\n : undefined,\n endDate:\n commissionRange?.to !== undefined\n ? format(commissionRange.to, \"yyyy-MM-dd\")\n : undefined,\n size: pageSize,\n page: !isLG ? page : undefined,\n });\n\n useEffect(() => {\n refresh();\n }, [commissionRange]);\n\n // const loadMore = () => {\n // setPage(page + 1);\n // };\n\n const pagination = useMemo(\n () => parsePagination(meta),\n [parsePagination, meta]\n );\n\n useEffect(() => {\n setPage(1);\n }, [commissionRange]);\n\n return {\n data: commissionData || undefined,\n pagination,\n dateRange: commissionRange,\n setDateRange: setCommissionRange,\n isLoading,\n loadMore,\n };\n};\n\nconst useRefereesDataScript = (): ListReturns<\n RefferalAPI.RefereeInfoItem[] | undefined\n> => {\n const [commissionRange, setCommissionRange] = useState<DateRange | undefined>(\n {\n from: subDays(new Date(), 90),\n to: subDays(new Date(), 1),\n }\n );\n\n const isLG = useMediaQuery(\"(max-width: 767px)\");\n\n const { page, pageSize, setPage, parsePagination } = usePagination();\n\n const [commissionData, { refresh, isLoading, loadMore, meta }] =\n useRefereeInfo({\n startDate:\n commissionRange?.from !== undefined\n ? format(commissionRange.from, \"yyyy-MM-dd\")\n : undefined,\n endDate:\n commissionRange?.to !== undefined\n ? format(commissionRange.to, \"yyyy-MM-dd\")\n : undefined,\n size: pageSize,\n page: !isLG ? page : undefined,\n sort: \"descending_code_binding_time\",\n });\n\n useEffect(() => {\n refresh();\n }, [commissionRange]);\n\n // const loadMore = () => {\n // setPage(page + 1);\n // };\n\n const pagination = useMemo(\n () => parsePagination(meta),\n [parsePagination, meta]\n );\n\n useEffect(() => {\n setPage(1);\n }, [commissionRange]);\n\n return {\n data: commissionData || undefined,\n pagination,\n dateRange: commissionRange,\n setDateRange: setCommissionRange,\n isLoading,\n loadMore,\n };\n};\n","import { useCommissionAndRefereesScript } from \"./commissionAndReferees.script\";\nimport { CommissionAndReferees } from \"./commissionAndReferees.ui\";\n\nexport const CommissionAndRefereesWidget = () => {\n const state = useCommissionAndRefereesScript();\n return <CommissionAndReferees {...state} />;\n};\n","import { Flex, cn } from \"@orderly.network/ui\";\nimport { SummaryWidget } from \"./summary\";\nimport { ReferralLinkWidget } from \"./referralLink\";\nimport { TitleStatisticWidget } from \"./titleStatistic\";\nimport { ReferralCodesWidget } from \"./referralCodes\";\nimport { CommissionAndRefereesWidget } from \"./commissionAndReferees\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\n\nexport const AffiliatePage = () => {\n return (\n <Flex\n id=\"oui-affiliate-affiliate-page\"\n className={cn(\n \"oui-h-lvw\",\n // padding\n // \"oui-p-4 lg:oui-p-6 xl:oui-p-3\",\n \"oui-font-semibold\"\n )}\n direction={\"column\"}\n gap={4}\n >\n <Layout />\n <CommissionAndRefereesWidget />\n </Flex>\n );\n};\n\nconst Layout = () => {\n const is2XL = useMediaQuery(\"(max-width: 1279px)\");\n\n if (is2XL) {\n return <Layout1024 />;\n }\n\n return <Layout1280 />;\n};\n\nconst Layout1024 = () => {\n return (\n <>\n <div className=\"oui-flex oui-flex-col xl:oui-flex-row oui-gap-4 oui-w-full\">\n <SummaryWidget />\n <ReferralLinkWidget />\n </div>\n <TitleStatisticWidget />\n <ReferralCodesWidget />\n </>\n );\n};\n\nconst Layout1280 = () => {\n return (\n <Flex direction={\"row\"} itemAlign={\"stretch\"} gap={4}>\n <Flex direction={\"column\"} gap={4} className=\"oui-flex-1 oui-w-1/2\">\n <div className=\"oui-flex-1 oui-h-full oui-w-full\">\n <SummaryWidget />\n </div>\n <TitleStatisticWidget />\n </Flex>\n <Flex direction={\"column\"} gap={4} className=\"oui-w-1/2\">\n <ReferralLinkWidget />\n {/* <div className=\"oui-h-[360px]\"> */}\n <div className=\"oui-flex-1\">\n <ReferralCodesWidget />\n </div>\n {/* </div> */}\n </Flex>\n </Flex>\n );\n};\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text, cn } from \"@orderly.network/ui\";\nimport { commify } from \"@orderly.network/utils\";\nimport { useReferralContext } from \"../../../provider\";\nimport { BecomeAffiliateReturns } from \"./becomeAffiliate.script\";\n\nexport const BecomeAffiliate: FC<BecomeAffiliateReturns> = (props) => {\n const { t } = useTranslation();\n\n const { generateCode } = useReferralContext();\n\n const applyText = useMemo(() => {\n if (!generateCode) {\n return {\n title: t(\"affiliate.process.step1.title\"),\n desc: t(\"affiliate.process.step1.description\"),\n };\n }\n if (generateCode.requireVolume > 0) {\n return {\n title: t(\"affiliate.process.step1.volumeGt0.title\", {\n requireVolume: generateCode.requireVolume,\n }),\n desc: t(\"affiliate.process.step1.volumeGt0.description\", {\n volume: commify(generateCode.completedVolume ?? 0, 2),\n requireVolume: commify(generateCode.requireVolume),\n }),\n };\n }\n // require volume = 0;\n return {\n title: t(\"affiliate.process.step1.volumeEq0.title\"),\n desc: t(\"affiliate.process.step1.volumeEq0.description\"),\n };\n }, [generateCode, t]);\n\n if (typeof props.overwrite === \"function\") {\n return props.overwrite?.(props.state);\n }\n\n return (\n <Flex\n id=\"oui-affiliate-home-becomeAffiliate\"\n direction={\"column\"}\n gap={6}\n p={6}\n itemAlign={\"center\"}\n r={\"2xl\"}\n className=\"oui-bg-base-9\"\n width={\"100%\"}\n >\n <Text>{t(\"affiliate.process.title\")}</Text>\n <Flex className=\"oui-flex oui-flex-col oui-gap-3 lg:oui-w-full lg:oui-flex-row lg:oui-items-stretch\">\n <Item\n icon={<ApplyIcon />}\n title={applyText.title}\n content={applyText.desc}\n />\n <div className=\"oui-shrink lg:oui-flex lg:-oui-rotate-90 lg:oui-flex-row lg:oui-items-center lg:oui-justify-center\">\n <ArrowDownIcon />\n </div>\n <Item\n icon={<ShareIcon />}\n title={t(\"affiliate.process.step2.title\")}\n content={t(\"affiliate.process.step2.description\")}\n />\n <div className=\"oui-shrink lg:oui-flex lg:-oui-rotate-90 lg:oui-flex-row lg:oui-items-center lg:oui-justify-center\">\n <ArrowDownIcon />\n </div>\n <Item\n icon={<EarnIcon />}\n title={t(\"affiliate.process.step3.title\")}\n content={t(\"affiliate.process.step3.description\")}\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Item: FC<{\n icon: ReactNode;\n title: string;\n content: string;\n}> = (props) => {\n return (\n <Flex\n className={cn(\n \"oui-flex oui-flex-row oui-gap-3\",\n \"lg:oui-flex-1 lg:oui-flex-col lg:oui-gap-[6px]\",\n )}\n width={\"100%\"}\n >\n <div className=\"oui-shrink-0\">{props.icon}</div>\n <Flex\n className={cn(\n \"oui-flex oui-flex-col oui-items-start oui-h-full oui-justify-between\",\n // lg\n \"lg:oui-items-center lg:oui-justify-start\",\n )}\n >\n <Text className=\"oui-text-sm md:oui-text-base 2xl:oui-text-lg lg:oui-text-center\">\n {props.title}\n </Text>\n <Text className=\"oui-text-2xs oui-text-base-contrast-36 lg:oui-text-center\">\n {props.content}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\nconst ApplyIcon = () => {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"lg:oui-w-[64px] lg:oui-h-[64px] 2xl:oui-w-[80px] 2xl:oui-h-[80px]\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24.941 5.4h-6.682a.6.6 0 0 0-.593.509l-.462 3a.6.6 0 0 0 .593.691h7.606a.6.6 0 0 0 .593-.691l-.462-3a.6.6 0 0 0-.593-.509m-6.682-1.8a2.4 2.4 0 0 0-2.372 2.035l-.462 3a2.4 2.4 0 0 0 2.372 2.765h7.606a2.4 2.4 0 0 0 2.372-2.765l-.462-3A2.4 2.4 0 0 0 24.941 3.6z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path\n d=\"M32.721 28.2c.924-1.6 3.233-1.6 4.157 0l7.275 12.6c.924 1.6-.231 3.6-2.079 3.6H27.525c-1.848 0-3.002-2-2.078-3.6z\"\n fill=\"#335FFC\"\n />\n <path\n d=\"M33.492 38.12H31.56c-.252 0-.426-.276-.336-.535l1.92-5.53a.4.4 0 0 1 .132-.185.34.34 0 0 1 .204-.07h3.24c.255 0 .43.284.333.544l-1.118 3.011h2.104c.31 0 .475.4.27.656l-5.158 6.453c-.251.313-.716.041-.619-.362z\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.4 16.8v2.4h2.4v-2.4zM13.2 15a.6.6 0 0 0-.6.6v4.8a.6.6 0 0 0 .6.6H18a.6.6 0 0 0 .6-.6v-4.8a.6.6 0 0 0-.6-.6z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path\n d=\"M20.4 16.2a.6.6 0 0 1 .6-.6h2.4a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6H21a.6.6 0 0 1-.6-.6zm0 3a.6.6 0 0 1 .6-.6h9a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6h-9a.6.6 0 0 1-.6-.6zm-7.8 5.4a.6.6 0 0 1 .6-.6H30a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6H13.2a.6.6 0 0 1-.6-.6zm0 3.6a.6.6 0 0 1 .6-.6H30a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6H13.2a.6.6 0 0 1-.6-.6zm0 3.6a.6.6 0 0 1 .6-.6h9a.6.6 0 0 1 .6.6v.6a.6.6 0 0 1-.6.6h-9a.6.6 0 0 1-.6-.6z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.739 6.6H10.2A2.4 2.4 0 0 0 7.8 9v30a2.4 2.4 0 0 0 2.4 2.4h13.84l1.014-1.8H10.2a.6.6 0 0 1-.6-.6V9a.6.6 0 0 1 .6-.6h5.262zm12 1.8H33a.6.6 0 0 1 .6.6v16.47a2.8 2.8 0 0 1 1.8-.205V9A2.4 2.4 0 0 0 33 6.6h-5.538z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n </svg>\n );\n};\n\nconst ShareIcon = () => {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"lg:oui-w-[64px] lg:oui-h-[64px] 2xl:oui-w-[80px] 2xl:oui-h-[80px]\"\n >\n <path d=\"M24 33a9 9 0 1 1-18 0 9 9 0 0 1 18 0\" fill=\"#335FFC\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15 32.4a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6m0 1.8a3.6 3.6 0 1 0 0-7.2 3.6 3.6 0 0 0 0 7.2m-6.578 4.942A4.8 4.8 0 0 1 13.2 34.8h3.6a4.8 4.8 0 0 1 4.778 4.342 9 9 0 0 1-1.778 1.473V39.6a3 3 0 0 0-3-3h-3.6a3 3 0 0 0-3 3v1.015a9 9 0 0 1-1.778-1.473\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.2 12a4.2 4.2 0 1 1-8.4 0 4.2 4.2 0 0 1 8.4 0m1.8 0c0 1.37-.459 2.632-1.231 3.642l2.308 2.308a7.76 7.76 0 0 1 4.023-1.7v-.764A3.602 3.602 0 0 1 24 8.4a3.6 3.6 0 0 1 .9 7.087v.764c1.48.17 2.833.754 3.942 1.633l2.326-2.326a6 6 0 1 1 1.273 1.273l-2.326 2.326a7.76 7.76 0 0 1 1.634 3.943h.764a3.602 3.602 0 0 1 7.087.9 3.6 3.6 0 0 1-7.087.9h-.764a7.76 7.76 0 0 1-1.699 4.023l2.308 2.308a6 6 0 1 1-1.25 1.295l-2.347-2.347a7.8 7.8 0 0 1-3.05 1.433 11 11 0 0 0-.377-1.76 6 6 0 1 0-7.185-7.185q-.855-.261-1.76-.379a7.8 7.8 0 0 1 1.432-3.049l-2.347-2.347A6 6 0 1 1 18 12m7.8 0a1.8 1.8 0 1 1-3.6 0 1.8 1.8 0 0 1 3.6 0M36 25.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6m0-9.6a4.2 4.2 0 1 0 0-8.4 4.2 4.2 0 0 0 0 8.4M40.2 36a4.2 4.2 0 1 1-8.4 0 4.2 4.2 0 0 1 8.4 0\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n </svg>\n );\n};\n\nconst EarnIcon = () => {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"lg:oui-w-[64px] lg:oui-h-[64px] 2xl:oui-w-[80px] 2xl:oui-h-[80px]\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 24a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8m0 1.8a4.2 4.2 0 1 0 0-8.4 4.2 4.2 0 0 0 0 8.4\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path d=\"M45 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0\" fill=\"#335FFC\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M35.1 6.6a.9.9 0 1 1 1.8 0v.437A3 3 0 0 1 39 9.9h-1.8a1.2 1.2 0 1 0-1.2 1.2 3 3 0 0 1 .9 5.863v.437a.9.9 0 0 1-1.8 0v-.437A3 3 0 0 1 33 14.1h1.8a1.2 1.2 0 1 0 1.2-1.2 3 3 0 0 1-.9-5.863z\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M40.2 23.7a.9.9 0 0 1 1.8 0v.6q0 .045-.004.086c-.197 9.351-7.525 16.948-16.765 17.573l1.205 1.205a.9.9 0 1 1-1.272 1.272l-2.7-2.7a.9.9 0 0 1 0-1.272l2.7-2.7a.9.9 0 1 1 1.272 1.272l-1.11 1.11c8.325-.674 14.87-7.642 14.874-16.14zM21.564 4.836a.9.9 0 1 1 1.272-1.272l2.7 2.7a.9.9 0 0 1 0 1.272l-2.7 2.7a.9.9 0 1 1-1.272-1.272l1.11-1.11C14.347 8.528 7.8 15.5 7.8 24v.3a.9.9 0 1 1-1.8 0v-.6l.004-.086C6.201 14.263 13.53 6.666 22.77 6.042z\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 11.4q.615 0 1.213.058a11 11 0 0 0 .061 1.816Q24.647 13.2 24 13.2c-5.965 0-10.8 4.835-10.8 10.8 0 2.898 1.142 5.53 3 7.47a4.8 4.8 0 0 1 4.8-4.79h6a4.8 4.8 0 0 1 4.8 4.789c1.858-1.94 3-4.572 3-7.47q0-.647-.074-1.274a11 11 0 0 0 1.816.06q.057.6.058 1.214c0 6.959-5.641 12.6-12.6 12.6S11.4 30.959 11.4 24 17.041 11.4 24 11.4m6 21.581v-1.5a3 3 0 0 0-3-3h-6a3 3 0 0 0-3 3v1.5a10.75 10.75 0 0 0 6 1.819c2.22 0 4.284-.67 6-1.819\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n </svg>\n );\n};\n\nconst ArrowDownIcon = () => {\n return (\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5048 4.00806C8.8728 4.00806 9.1708 4.30626 9.1708 4.67406C9.1708 4.99259 9.1708 8.71739 9.1708 9.71072L11.1688 7.73339L12.1055 8.67005L8.98346 11.8127C8.85346 11.9434 8.6788 12.0081 8.50413 12.0081C8.33013 12.0081 8.15612 11.9427 8.02612 11.8127L4.90413 8.67005L5.8408 7.73339L7.83881 9.71072C7.83881 8.71739 7.83881 4.99259 7.83881 4.67406C7.83881 4.30626 8.1368 4.00806 8.5048 4.00806Z\"\n fill=\"#608CFF\"\n />\n </svg>\n );\n};\n","import {\n BuildNode,\n ReferralContextReturns,\n useReferralContext,\n} from \"../../../provider\";\n\nexport type BecomeAffiliateReturns = {\n state: ReferralContextReturns;\n overwrite?: BuildNode;\n};\n\nexport const useBecomeAffiliateScript = (): BecomeAffiliateReturns => {\n const state = useReferralContext();\n\n return {\n overwrite: state.overwrite?.ref?.step,\n state,\n };\n};\n","import { useBecomeAffiliateScript } from \"./becomeAffiliate.script\";\nimport { BecomeAffiliate } from \"./becomeAffiliate.ui\";\n\nexport const BecomeAffiliateWidget = () => {\n const state = useBecomeAffiliateScript();\n return <BecomeAffiliate {...state} />;\n};\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Title: React.FC = () => {\n const { t } = useTranslation();\n return (\n <div\n id=\"oui-affiliate-home-title\"\n className=\"oui-text-center oui-text-3xl oui-font-bold md:oui-text-3xl lg:oui-text-4xl xl:oui-text-5xl\"\n >\n {t(\"affiliate.page.title\")}\n </div>\n );\n};\n","import React from \"react\";\nimport { Title } from \"./title.ui\";\n\nexport const TitleWidget: React.FC = () => {\n return <Title />;\n};\n","import { FC } from \"react\";\nimport { SubtitleReturns } from \"./subtitle.script\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Subtitle: FC<SubtitleReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-home-subtitle\"\n direction={\"column\"}\n className=\"oui-text-sm md:oui-text-base xl:oui-text-lg oui-text-base-contrast-80 oui-text-center\"\n gap={3}\n >\n <Text>{t(\"affiliate.page.subTitle\")}</Text>\n <Flex\n direction={\"row\"}\n gap={1}\n className=\"oui-text-primary-light oui-fill-primary-light hover:oui-text-primary-darken oui-cursor-pointer oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n onClick={(e) => {\n if (props.onLearnAffiliate) {\n props.onLearnAffiliate?.();\n } else if (props.learnAffiliateUrl) {\n window.open(props.learnAffiliateUrl, \"_blank\");\n }\n }}\n >\n <Text children={t(\"affiliate.page.learnMore\")} />\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.008 7.995c0-.368.298-.666.666-.666H9.71L7.733 5.331l.937-.936 3.143 3.122c.13.13.195.304.195.479a.67.67 0 0 1-.195.478L8.67 11.596l-.937-.937 1.978-1.998H4.674a.666.666 0 0 1-.666-.666\" />\n </svg>\n </Flex>\n </Flex>\n );\n};\n","import { ReactNode } from \"react\";\nimport { RefferalAPI } from \"@orderly.network/hooks\";\nimport { BuildNode, useReferralContext } from \"../../../provider\";\n\nexport type SubtitleReturns = {\n onLearnAffiliate?: () => void;\n learnAffiliateUrl?: string;\n};\n\nexport const useSubtitleScript = (): SubtitleReturns => {\n const state = useReferralContext();\n\n const { onLearnAffiliate, learnAffiliateUrl } = state;\n\n return {\n onLearnAffiliate,\n learnAffiliateUrl,\n };\n};\n","import { useSubtitleScript } from \"./subtitle.script\";\nimport { Subtitle } from \"./subtitle.ui\";\n\nexport const SubtitleWidget = () => {\n const state = useSubtitleScript();\n return <Subtitle {...state} />;\n};\n","import { FC } from \"react\";\nimport { TopReturns } from \"./top.script\";\nimport { TitleWidget } from \"../title\";\nimport { SubtitleWidget } from \"../subtitle\";\nimport { Flex } from \"@orderly.network/ui\";\n\nexport const Top: FC<TopReturns> = (props) => {\n if (props.overwriteTop !== undefined) {\n return props.overwriteTop?.(props.state);\n }\n return (\n <Flex id=\"oui-affiliate-home-top\" direction=\"column\" gap={6}>\n <TitleWidget />\n <SubtitleWidget />\n </Flex>\n );\n};\n","import {\n BuildNode,\n ReferralContextReturns,\n useReferralContext,\n} from \"../../../provider\";\n\nexport type TopReturns = {\n state: ReferralContextReturns;\n overwriteTop?: BuildNode;\n};\n\nexport const useTopScript = (): TopReturns => {\n const state = useReferralContext();\n\n return {\n overwriteTop: state.overwrite?.ref?.top,\n state,\n };\n};\n","import { useTopScript } from \"./top.script\";\nimport { Top } from \"./top.ui\";\n\nexport const TopWidget = () => {\n const state = useTopScript();\n return (\n <Top {...state}/>\n );\n};\n","import { FC } from \"react\";\n\nexport const ArrowRightIcon: FC<{\n className?: string;\n}> = (props) => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"white\"\n fillOpacity=\"0.98\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n >\n <path d=\"M4.00806 7.9952C4.00806 7.6272 4.30626 7.3292 4.67406 7.3292C4.99259 7.3292 8.71739 7.3292 9.71072 7.3292L7.73339 5.3312L8.67005 4.39453L11.8127 7.51654C11.9434 7.64654 12.0081 7.8212 12.0081 7.99587C12.0081 8.16987 11.9427 8.34388 11.8127 8.47388L8.67005 11.5959L7.73339 10.6592L9.71072 8.66119C8.71739 8.66119 4.99259 8.66119 4.67406 8.66119C4.30626 8.66119 4.00806 8.3632 4.00806 7.9952Z\" />\n </svg>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Button,\n cn,\n Dialog,\n DialogBody,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n Divider,\n Flex,\n inputFormatter,\n Text,\n TextField,\n} from \"@orderly.network/ui\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { ArrowRightIcon } from \"../../../components/arrowRightIcon\";\nimport { USDCIcon } from \"../../../components/usdcIcon\";\nimport { AsTraderReturns } from \"./asTrader.script\";\n\nexport const AsTrader: FC<AsTraderReturns> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex\n id=\"oui-affiliate-home-asTrader\"\n gradient=\"success\"\n r={\"2xl\"}\n p={6}\n gap={6}\n direction={\"column\"}\n angle={180}\n width={\"100%\"}\n justify={\"between\"}\n >\n <Flex\n height={80}\n direction={\"row\"}\n gap={3}\n itemAlign={\"start\"}\n width={\"100%\"}\n justify={\"between\"}\n >\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n justify={\"between\"}\n className=\"oui-h-full\"\n >\n <Text className=\"oui-text-lg md:oui-text-xl lg:oui-text-2xl xl:oui-text-3xl\">\n {props.isTrader\n ? t(\"affiliate.trader\")\n : t(\"affiliate.asTrader.title\")}\n </Text>\n <Text\n className={cn(\n \"oui-text-xs oui-text-base-contrast-54 md:oui-text-sm 2xl:oui-text-base\",\n props.isTrader && \"oui-hidden\",\n )}\n >\n {t(\"affiliate.asTrader.description\")}\n </Text>\n </Flex>\n <div className=\"oui-shrink-0\">\n <Icon />\n </div>\n </Flex>\n <Bottom {...props} />\n </Flex>\n );\n};\n\nconst Icon = () => {\n return (\n <svg\n width=\"72\"\n height=\"72\"\n viewBox=\"0 0 90 90\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"xl:oui-size-[90px] \"\n >\n <path\n d=\"M44.996 7.324c-20.71 0-37.43 16.79-37.5 37.5-.07 20.682 16.806 37.575 37.5 37.617 20.694.04 37.537-17.082 37.5-37.617-.037-20.71-16.79-37.5-37.5-37.5m0 7.5c16.569 0 30 13.433 30 30 0 8.438-3.514 16.043-9.12 21.495-2.762-5.973-8.694-10.245-15.49-10.245h-10.78c-6.791 0-12.706 4.22-15.47 10.197-5.606-5.453-9.14-13.01-9.14-21.447 0-16.567 13.431-30 30-30m0 7.5c-8.284 0-15 6.717-15 15s6.716 15 15 15 15-6.716 15-15-6.716-15-15-15\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n <path\n d=\"M90 71.25C90 81.605 81.605 90 71.25 90S52.5 81.605 52.5 71.25 60.895 52.5 71.25 52.5 90 60.895 90 71.25\"\n fill=\"#005A4F\"\n />\n <path\n d=\"M80.62 75.007c0-.24-.08-.49-.263-.675l-3.487-3.456-1.318 1.318 1.845 1.875H63.745a.938.938 0 0 0 0 1.875h13.652l-1.845 1.875 1.318 1.318 3.487-3.456a.95.95 0 0 0 .263-.674m-.937-7.5a.94.94 0 0 0-.938-.938H65.093l1.846-1.875-1.319-1.318-3.486 3.456a.966.966 0 0 0 0 1.349l3.486 3.456 1.319-1.318-1.846-1.875h13.652c.518 0 .938-.42.938-.937\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n\nconst Bottom: FC<AsTraderReturns> = (props) => {\n const { t } = useTranslation();\n\n const content = () => {\n if (props.isTrader && !props.wrongNetwork) {\n const totalReferrerRebate =\n props.referralInfo?.referee_info?.total_referee_rebate;\n return (\n <>\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={2}>\n <Text className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\">\n {t(\"affiliate.commission\")} {<Text intensity={36}>(USDC)</Text>}\n </Text>\n <Flex direction={\"row\"} gap={1}>\n <USDCIcon />\n <Text className=\"oui-text-base md:oui-text-lg lg:oui-text-xl xl:oui-text-2xl\">\n {commifyOptional(totalReferrerRebate, {\n fix: 2,\n fallback: \"0\",\n })}\n </Text>\n </Flex>\n </Flex>\n <Flex\n direction={\"row\"}\n gap={1}\n justify={\"end\"}\n itemAlign={\"center\"}\n className=\"oui-cursor-pointer\"\n onClick={props?.onEnterTraderPage}\n >\n <Text className=\"oui-text-sm md:oui-text-base xl:oui-text-lg\">\n {t(\"affiliate.enter\")}\n </Text>\n <ArrowRightIcon className=\"md:oui-size-[18px] lg:oui-size-[20px] xl:oui-size-[24px]\" />\n </Flex>\n </>\n );\n }\n\n return <EntryCode {...props} />;\n };\n\n return (\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n width={\"100%\"}\n itemAlign={\"end\"}\n >\n {content()}\n </Flex>\n );\n};\n\nconst EntryCode: FC<AsTraderReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Dialog open={props.open} onOpenChange={props.setOpen}>\n <DialogTrigger>\n <Button variant=\"contained\" color=\"light\">\n {t(\"affiliate.asTrader.button\")}\n </Button>\n </DialogTrigger>\n <DialogContent className=\"oui-w-[320px] oui-font-semibold\">\n <DialogHeader>\n <DialogTitle>{t(\"affiliate.referralCode.dialog.title\")}</DialogTitle>\n </DialogHeader>\n <Divider />\n <DialogBody>\n <Text size=\"sm\" intensity={54}>\n {t(\"affiliate.referralCode.dialog.description\")}\n </Text>\n\n <TextField\n className=\"oui-mt-4 oui-w-full\"\n placeholder={t(\"affiliate.referralCode\")}\n value={props.code}\n onChange={(e) => {\n const _value = e.target.value\n .toUpperCase()\n .replace(/[^A-Z0-9]/g, \"\");\n props.setCode(_value);\n }}\n formatters={[\n inputFormatter.createRegexInputFormatter(\n (value: string | number) => {\n return String(value).replace(/[a-z]/g, (char: string) =>\n char.toUpperCase(),\n );\n },\n ),\n inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g),\n ]}\n onClean={() => {\n props.setCode(\"\");\n }}\n label={t(\"affiliate.referralCode.label\")}\n classNames={{\n label: \"oui-text-2xs oui-text-base-contrast-54\",\n }}\n helpText={\n !props.isExist && !props.isLoading && props.code.length > 0\n ? t(\"affiliate.referralCode.notExist\")\n : undefined\n }\n color={\n !props.isExist && !props.isLoading && props.code.length > 0\n ? \"danger\"\n : undefined\n }\n />\n\n <Flex direction={\"column\"} gapY={3} mt={6}>\n {props.warningMessage && (\n <Text size=\"2xs\" className=\"oui-text-warning-darken\">\n {props.warningMessage}\n </Text>\n )}\n <AuthGuard buttonProps={{ size: \"md\", fullWidth: true }}>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"md\"\n className=\"oui-px-[40px]\"\n fullWidth\n disabled={props.code.length < 4 || !props.isExist}\n onClick={(e) => {\n e.stopPropagation();\n props.onClickConfirm();\n }}\n >\n {t(\"common.confirm\")}\n </Button>\n </AuthGuard>\n </Flex>\n </DialogBody>\n </DialogContent>\n </Dialog>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport {\n useAccount,\n useCheckReferralCode,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { toast, useScreen } from \"@orderly.network/ui\";\nimport { AuthStatusEnum, useAuthStatus } from \"@orderly.network/ui-connector\";\nimport { TabTypes, useReferralContext } from \"../../../provider\";\n\nexport const useAsTraderScript = () => {\n const { t } = useTranslation();\n\n const {\n isTrader,\n referralInfo,\n setShowHome,\n bindReferralCodeState,\n setTab,\n mutate,\n } = useReferralContext();\n\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const { state } = useAccount();\n\n const onEnterTraderPage = () => {\n setTab(TabTypes.trader);\n setShowHome(false);\n };\n\n const [code, setCode] = useState(\"\");\n const [open, setOpen] = useState(false);\n\n const {\n isExist,\n error: checkCodeError,\n isLoading,\n } = useCheckReferralCode(code);\n\n const hide = () => {\n setOpen(false);\n };\n\n const [bindCode, { error, isMutating }] = useMutation(\n \"/v1/referral/bind\",\n \"POST\",\n );\n\n const onClickConfirm = async () => {\n try {\n await bindCode({ referral_code: code });\n toast.success(t(\"affiliate.referralCode.bound\"));\n mutate();\n if (bindReferralCodeState) {\n bindReferralCodeState(true, null, hide, { tab: 1 });\n } else {\n hide();\n }\n } catch (e: any) {\n let errorText = `${e}`;\n if (\"message\" in e) {\n errorText = e.message;\n }\n\n if (\"referral code not exist\" === errorText) {\n errorText = t(\"affiliate.referralCode.notExist\");\n }\n\n if (bindReferralCodeState) {\n toast.error(errorText);\n bindReferralCodeState(false, e, hide, {});\n } else {\n toast.error(errorText);\n }\n }\n };\n\n const { isMobile } = useScreen();\n\n const authStatus = useAuthStatus();\n\n const warningMessage = useMemo(() => {\n const message: { [key in AuthStatusEnum]?: string } = {\n [AuthStatusEnum.ConnectWallet]: t(\"affiliate.connectWallet.tooltip\"),\n [AuthStatusEnum.CreateAccount]: t(\"affiliate.createAccount.tooltip\"),\n [AuthStatusEnum.WrongNetwork]: t(\"connector.wrongNetwork.tooltip\"),\n };\n return message[authStatus];\n }, [authStatus]);\n\n return {\n isTrader,\n isLoading,\n referralInfo,\n onEnterTraderPage,\n code,\n setCode,\n open,\n setOpen,\n onClickConfirm,\n isExist,\n wrongNetwork,\n isMobile,\n warningMessage,\n };\n};\n\nexport type AsTraderReturns = ReturnType<typeof useAsTraderScript>;\n","import { useAsTraderScript } from \"./asTrader.script\";\nimport { AsTrader } from \"./asTrader.ui\";\n\nexport const AsTraderWidget = () => {\n const state = useAsTraderScript();\n return <AsTrader {...state} />;\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Button, cn, Flex, Text } from \"@orderly.network/ui\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { ArrowRightIcon } from \"../../../components/arrowRightIcon\";\nimport { USDCIcon } from \"../../../components/usdcIcon\";\nimport { AsAnAffiliateReturns } from \"./asAnAffiliate.script\";\n\nexport const AsAnAffiliate: FC<AsAnAffiliateReturns> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex\n id=\"oui-affiliate-home-asAnAffiliate\"\n gradient=\"primary\"\n r={\"2xl\"}\n p={6}\n gap={6}\n direction={\"column\"}\n angle={180}\n width={\"100%\"}\n justify={\"between\"}\n >\n <Flex\n direction={\"row\"}\n gap={3}\n itemAlign={\"start\"}\n width={\"100%\"}\n justify={\"between\"}\n >\n <Flex\n direction={\"column\"}\n itemAlign={\"start\"}\n justify={\"between\"}\n className=\"oui-h-full\"\n >\n <Text className=\"oui-text-lg md:oui-text-xl lg:oui-text-2xl xl:oui-text-3xl\">\n {props.isAffiliate\n ? t(\"common.affiliate\")\n : t(\"affiliate.asAffiliate.title\")}\n </Text>\n <Text\n className={cn(\n \"oui-text-xs oui-text-base-contrast-54 md:oui-text-sm 2xl:oui-text-base\",\n props.isAffiliate && \"oui-hidden\",\n )}\n >\n {t(\"affiliate.asAffiliate.description\")}\n </Text>\n </Flex>\n <div className=\"oui-shrink-0\">\n <Icon />\n </div>\n </Flex>\n <Bottom {...props} />\n </Flex>\n );\n};\n\nconst Icon = () => {\n return (\n <svg\n width=\"72\"\n height=\"72\"\n viewBox=\"0 0 72 72\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"xl:oui-size-[90px]\"\n >\n <path\n d=\"M35.997 5.86c-16.569 0-29.944 13.43-30 30-.056 16.545 13.445 30.06 30 30.093s30.03-13.665 30-30.093c-.03-16.57-13.432-30-30-30m0 6c13.255 0 24 10.746 24 24 0 6.75-2.812 12.834-7.297 17.196-2.209-4.78-6.955-8.196-12.39-8.196h-8.626c-5.432 0-10.164 3.375-12.375 8.157-4.485-4.362-7.312-10.407-7.312-17.157 0-13.254 10.745-24 24-24m0 6c-6.628 0-12 5.373-12 12s5.372 12 12 12c6.627 0 12-5.373 12-12s-5.373-12-12-12\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n <path\n d=\"M72 57c0 8.284-6.716 15-15 15s-15-6.716-15-15 6.716-15 15-15 15 6.716 15 15\"\n fill=\"#1828C3\"\n />\n <path\n d=\"M53.624 51.45a4.125 4.125 0 0 0-4.125 4.125c0 2.388 1.36 4.641 3.61 6.703a21 21 0 0 0 2.414 1.875c.287.194.556.37.797.516.147.089.243.154.304.187a.79.79 0 0 0 .75 0c.061-.033.158-.098.305-.187.24-.147.51-.322.797-.516a21 21 0 0 0 2.414-1.875c2.25-2.062 3.61-4.315 3.61-6.703a4.125 4.125 0 0 0-4.126-4.125c-1.294 0-2.557.705-3.351 1.734-.775-1.047-2.034-1.734-3.399-1.734\"\n fill=\"#fff\"\n fillOpacity=\".98\"\n />\n </svg>\n );\n};\n\nconst Bottom: FC<AsAnAffiliateReturns> = (props) => {\n const { t } = useTranslation();\n\n const content = () => {\n if (props.isAffiliate && !props.wrongNetwork) {\n const totalReferrerRebate =\n props.referralInfo?.referrer_info?.total_referrer_rebate;\n return (\n <>\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={2}>\n <Text className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\">\n {t(\"affiliate.commission\")} {<Text intensity={36}>(USDC)</Text>}\n </Text>\n <Flex direction={\"row\"} gap={1}>\n <USDCIcon />\n <Text className=\"oui-text-base md:oui-text-lg lg:oui-text-xl xl:oui-text-2xl\">\n {commifyOptional(totalReferrerRebate, {\n fix: 2,\n fallback: \"0\",\n })}\n </Text>\n </Flex>\n </Flex>\n\n <Flex\n direction={\"row\"}\n gap={1}\n justify={\"end\"}\n itemAlign={\"center\"}\n className=\"oui-cursor-pointer\"\n onClick={props.onEnterAffiliatePage}\n >\n <Text className=\"oui-text-sm md:oui-text-base xl:oui-text-lg\">\n {t(\"affiliate.enter\")}\n </Text>\n <ArrowRightIcon className=\"md:oui-size-[18px] lg:oui-size-[20px] xl:oui-size-[24px]\" />\n </Flex>\n </>\n );\n }\n\n return (\n <>\n <Button\n variant=\"contained\"\n color=\"light\"\n onClick={props.becomeAnAffiliate}\n >\n {t(\"affiliate.asAffiliate.button\")}\n </Button>\n <Flex\n direction={\"column\"}\n justify={\"between\"}\n className=\"oui-h-full\"\n itemAlign={\"end\"}\n >\n <Text className=\"oui-text-base md:oui-text-lg lg:oui-text-xl 2xl:oui-text-2xl\">\n {t(\"affiliate.upTo\")}\n </Text>\n <Text className=\"oui-text-2xs oui-text-base-contrast-54 md:oui-text-xs 2xl:oui-text-sm\">\n {t(\"affiliate.commission\")}\n </Text>\n </Flex>\n </>\n );\n };\n\n return (\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n width={\"100%\"}\n itemAlign={\"end\"}\n >\n {content()}\n </Flex>\n );\n};\n","import { useAppContext } from \"@orderly.network/react-app\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { TabTypes, useReferralContext } from \"../../../provider\";\n\nexport type AsAnAffiliateReturns = ReturnType<typeof useAsAnAffiliateScript>;\n\nexport const useAsAnAffiliateScript = () => {\n const {\n isAffiliate,\n isLoading,\n referralInfo,\n becomeAnAffiliateUrl,\n setShowHome,\n setTab,\n } = useReferralContext();\n\n const { wrongNetwork } = useAppContext();\n\n const becomeAnAffiliate = () => {\n window.open(becomeAnAffiliateUrl, \"_blank\");\n };\n\n const onEnterAffiliatePage = () => {\n setTab(TabTypes.affiliate);\n setShowHome(false);\n };\n\n const { isMobile } = useScreen();\n\n return {\n isAffiliate,\n isLoading,\n referralInfo,\n onEnterAffiliatePage,\n becomeAnAffiliate,\n wrongNetwork,\n isMobile,\n };\n};\n","import React from \"react\";\nimport { useAsAnAffiliateScript } from \"./asAnAffiliate.script\";\nimport { AsAnAffiliate } from \"./asAnAffiliate.ui\";\n\nexport const AsAnAffiliateWidget: React.FC = () => {\n const state = useAsAnAffiliateScript();\n return <AsAnAffiliate {...state} />;\n};\n","import { FC } from \"react\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { AsTraderWidget } from \"../asATrader\";\nimport { AsAnAffiliateWidget } from \"../asAnAffilate\";\nimport { CardReturns } from \"./card.script\";\n\nexport const Card: FC<CardReturns> = (props) => {\n if (typeof props.overwrite === \"function\") {\n return props.overwrite?.(props.state);\n }\n return (\n <Flex\n id=\"oui-affiliate-home-card\"\n className=\"oui-flex oui-w-full oui-flex-col oui-items-stretch oui-gap-6 xl:oui-flex-row xl:oui-gap-[36px]\"\n >\n <AsAnAffiliateWidget />\n <AsTraderWidget />\n </Flex>\n );\n};\n","import {\n BuildNode,\n ReferralContextReturns,\n useReferralContext,\n} from \"../../../provider\";\n\nexport type CardReturns = {\n state: ReferralContextReturns;\n overwrite?: BuildNode;\n};\n\nexport const useCardScript = (): CardReturns => {\n const state = useReferralContext();\n\n return {\n overwrite: state.overwrite?.ref?.card,\n state,\n };\n};\n","import { useCardScript } from \"./card.script\";\nimport { Card } from \"./card.ui\";\n\nexport const CardWidget = () => {\n const state = useCardScript();\n return <Card {...state} />;\n};\n","import { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { BecomeAffiliateWidget } from \"./becomeAffiliate\";\nimport { TopWidget } from \"./top\";\nimport { CardWidget } from \"./card\";\n\nexport const HomePage = () => {\n return (\n <Flex\n id=\"oui-affiliate-home-page\"\n className={cn(\n \"oui-h-lvw \",\n // padding\n // \"oui-p-4 lg:oui-p-6 xl:oui-p-3\",\n \"oui-font-semibold\"\n )}\n direction={\"column\"}\n gap={4}\n >\n <TopWidget />\n <CardWidget />\n <BecomeAffiliateWidget />\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { Button, Flex, Select, Text } from \"@orderly.network/ui\";\nimport { SummaryReturns } from \"./summary.script\";\nimport { USDCIcon } from \"../../../components/usdcIcon\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Summary: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-affiliate-trader-summary\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n height={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9 xl:oui-flex-1\"\n >\n <Title {...props} />\n <Rebate className=\"md:oui-hidden\" {...props} />\n <Flex direction={\"column\"} gap={3} width={\"100%\"} className=\"md:oui-mt-3\">\n <SummaryFilter {...props} />\n <CommissionData {...props} />\n </Flex>\n <Row title={`${t(\"affiliate.trader.tradingVol\")} (USDC)`} {...props} />\n </Flex>\n );\n};\n\nconst Title: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} width={\"100%\"} gap={3}>\n <Flex direction={\"row\"} gap={3} className=\"oui-flex-1\">\n <Text className=\"oui-text-lg\">\n {t(\"affiliate.trader.yourReferrer\")}\n </Text>\n <Button\n color=\"secondary\"\n size=\"sm\"\n className=\"oui-text-primary-light oui-text-2xs md:oui-text-xs 2xl:oui-text-sm oui-bg-base-6\"\n >\n {props.code}\n </Button>\n </Flex>\n <Rebate\n className=\"oui-hidden md:oui-flex md:oui-flex-shrink md:oui-w-fit\"\n {...props}\n />\n </Flex>\n );\n};\n\nconst Rebate: FC<SummaryReturns & { className?: string }> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} width={\"100%\"} gap={2} className={props.className}>\n <Text\n intensity={54}\n className=\"oui-text-sm md:oui-text-base 2xl:oui-text-lg\"\n >\n {`${t(\"affiliate.trader.rebate\")}:`}\n </Text>\n <Text.gradient\n color=\"brand\"\n className=\"oui-text-lg md:oui-text-xl 2xl:oui-text-2xl\"\n >\n {props.rebateText}\n </Text.gradient>\n </Flex>\n );\n};\n\nconst SummaryFilter: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} width={\"100%\"} justify={\"between\"} gap={3}>\n <Text className=\"oui-text-sm\">{t(\"affiliate.summary\")}</Text>\n <div>\n <Select.options\n size={\"xs\"}\n value={props.period}\n onValueChange={props.onPeriodChange}\n options={props.periodTypes}\n />\n </div>\n </Flex>\n );\n};\n\nconst CommissionData: FC<SummaryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n gradient=\"success\"\n angle={180}\n r=\"xl\"\n py={4}\n px={6}\n width={\"100%\"}\n direction={\"column\"}\n gap={3}\n >\n <Text intensity={54} className=\"oui-text-base 2xl:oui-text-lg\">\n {`${t(\"affiliate.trader.rebates\")} (USDC)`}\n </Text>\n <Flex\n direction={\"row\"}\n gap={3}\n className=\"oui-text-xl md:oui-text-2xl xl:oui-text-3xl\"\n >\n <USDCIcon className=\"md:oui-w-[24px] md:oui-h-[24px] lg:oui-w-[28px] lg:oui-h-[28px] \" />\n <Text>{commifyOptional(props.rebates, { fix: 2, fallback: \"0\" })}</Text>\n </Flex>\n </Flex>\n );\n};\n\nconst Row: FC<\n SummaryReturns & {\n title: string;\n }\n> = (props) => {\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text\n intensity={54}\n className=\"oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n >\n {props.title}\n </Text>\n <Text className=\"oui-text-xs md:oui-text-sm xl:oui-text-base\">\n {commifyOptional(props.vol, { fix: 2, fallback: \"0\" })}\n </Text>\n </Flex>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useReferralContext } from \"../../../provider\";\nimport { SummaryFilter } from \"../../../utils/types\";\n\nexport type SummaryReturns = {\n period: string;\n periodTypes: { label: string; value: string }[];\n onPeriodChange: (item: string) => void;\n rebates: number;\n vol?: number;\n code?: string;\n rebateText: string;\n};\n\nexport const useSummaryScript = (): SummaryReturns => {\n const { t } = useTranslation();\n const [period, setPeriod] = useState<SummaryFilter>(\"All\");\n\n const periodTypes: {\n label: SummaryFilter;\n value: SummaryFilter;\n }[] = [\n { label: t(\"common.all\"), value: \"All\" },\n { label: t(\"common.select.1d\"), value: \"1D\" },\n { label: t(\"common.select.7d\"), value: \"7D\" },\n { label: t(\"common.select.30d\"), value: \"30D\" },\n ];\n\n const { referralInfo, userVolume } = useReferralContext();\n\n const rebates = useMemo(() => {\n if (!referralInfo) return 0;\n //\n switch (period) {\n case \"All\":\n return referralInfo.referee_info.total_referee_rebate;\n case \"1D\":\n return referralInfo.referee_info[\"1d_referee_rebate\"];\n case \"7D\":\n return referralInfo.referee_info[\"7d_referee_rebate\"];\n case \"30D\":\n return referralInfo.referee_info[\"30d_referee_rebate\"];\n }\n }, [referralInfo, period]);\n\n const vol = useMemo(() => {\n if (!userVolume) return undefined;\n switch (period) {\n case \"All\":\n return userVolume.all_volume;\n case \"1D\":\n return userVolume[\"1d_volume\"];\n case \"7D\":\n return userVolume[\"7d_volume\"];\n case \"30D\":\n return userVolume[\"30d_volume\"];\n }\n }, [userVolume, period]);\n\n const code = referralInfo?.referee_info?.referer_code;\n const rebate = referralInfo?.referee_info?.referee_rebate_rate;\n\n const rebateText = useMemo(() => {\n if (!!rebate) {\n return (\n new Decimal(rebate)\n .mul(100)\n .toDecimalPlaces(2, Decimal.ROUND_DOWN)\n .toString() + \"%\"\n );\n }\n return \"-\";\n }, [rebate]);\n\n const onPeriodChange = (item: string) => {\n setPeriod(item as SummaryFilter);\n };\n return {\n period,\n periodTypes,\n onPeriodChange,\n rebates,\n vol,\n rebateText,\n code,\n };\n};\n","import { useSummaryScript } from \"./summary.script\";\nimport { Summary } from \"./summary.ui\";\n\nexport const SummaryWidget = () => {\n const state = useSummaryScript();\n return <Summary {...state} />;\n};\n","import { FC } from \"react\";\nimport { Flex, Select, Text } from \"@orderly.network/ui\";\nimport { VolBarChart } from \"@orderly.network/chart\";\nimport { TitleStatisticReturns } from \"./titleStatistic.script\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nexport const TitleStatistic: FC<TitleStatisticReturns> = (props) => {\n return (\n <Flex\n id=\"oui-affiliate-trader-titleStatistic\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9 xl:oui-flex-1\"\n >\n <Title {...props} />\n <Flex className=\"oui-min-h-[170px] oui-h-full oui-w-full oui-flex oui-flex-row oui-items-stretch\">\n <VolBarChart\n data={props.dataSource}\n colors={{ fill: \"rgba(0, 180, 158, 1)\" }}\n className=\"oui-w-full oui-flex-1\"\n tooltip={{\n rm: Decimal.ROUND_DOWN,\n dp: props.volType === \"volume\" ? 2 : 6,\n }}\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Title: FC<TitleStatisticReturns> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.statistics\")}</Text>\n <Flex direction={\"row\"} gap={2} className={\"oui-min-w-14\"}>\n <Select.options\n size={\"xs\"}\n value={props.period}\n onValueChange={props.onPeriodChange}\n options={props.periodTypes}\n />\n <Select.options\n size={\"xs\"}\n value={props.volType}\n onValueChange={props.onVolTypeChange}\n options={props.volTypes}\n />\n </Flex>\n </Flex>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { format, subDays } from \"date-fns\";\nimport { VolChartDataItem } from \"@orderly.network/chart\";\nimport { useRefereeRebateSummary } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useReferralContext } from \"../../../provider\";\nimport { fillData } from \"../../../utils/chartUtils\";\nimport { BarDayFilter } from \"../../../utils/types\";\n\nexport type TitleStatisticReturns = {\n period: string;\n periodTypes: { label: string; value: string }[];\n onPeriodChange: (item: string) => void;\n volType: string;\n volTypes: { label: string; value: string }[];\n onVolTypeChange: (item: string) => void;\n dataSource: VolChartDataItem[];\n};\n\nexport const useTitleStatisticScript = (): TitleStatisticReturns => {\n const { t } = useTranslation();\n const [period, setPeriod] = useState<BarDayFilter>(\"7\");\n\n const periodTypes = [\n { label: t(\"common.select.7d\"), value: \"7\" },\n { label: t(\"common.select.30d\"), value: \"30\" },\n { label: t(\"common.select.90d\"), value: \"90\" },\n ];\n\n const onPeriodChange = (item: string) => {\n setPeriod(item as BarDayFilter);\n };\n\n const [volType, setVolType] = useState(\"rebate\");\n const volTypes = [\n { label: t(\"affiliate.trader.rebate\"), value: \"rebate\" },\n { label: t(\"common.volume\"), value: \"volume\" },\n ];\n\n const onVolTypeChange = (item: string) => {\n setVolType(item);\n };\n\n const dateRange = useMemo((): {\n startDate?: Date;\n endDate?: Date;\n } => {\n if (period === \"7\") {\n return {\n startDate: subDays(new Date(), 7),\n endDate: subDays(new Date(), 1),\n };\n } else if (period === \"30\") {\n return {\n startDate: subDays(new Date(), 30),\n endDate: subDays(new Date(), 1),\n };\n } else if (period === \"90\") {\n return {\n startDate: subDays(new Date(), 90),\n endDate: subDays(new Date(), 1),\n };\n } else {\n return {\n startDate: subDays(new Date(), 7),\n endDate: subDays(new Date(), 1),\n };\n }\n }, [period]);\n\n const { data: distributionData, mutate } = useRefereeRebateSummary(dateRange);\n const { dailyVolume, chartConfig } = useReferralContext();\n\n const dataSource = useMemo(() => {\n if (volType === \"rebate\") {\n const newData = distributionData || [];\n return newData\n .map((e) => ({\n date: e.date,\n volume: e.referee_rebate,\n }))\n .reverse();\n } else if (volType === \"volume\") {\n return (\n dailyVolume\n ?.filter((e) => {\n return (\n e.date > format(subDays(Date(), Number(period) + 1), \"yyyy-MM-dd\")\n );\n })\n .map((e) => ({\n date: e.date,\n volume: e.perp_volume,\n })) || []\n );\n } else {\n return [];\n }\n }, [distributionData, dailyVolume, volType]);\n\n return {\n period,\n periodTypes,\n onPeriodChange,\n volType,\n volTypes,\n onVolTypeChange,\n dataSource: fillData(Number(period), dataSource),\n };\n};\n","import { useTitleStatisticScript } from \"./titleStatistic.script\";\nimport { TitleStatistic } from \"./titleStatistic.ui\";\n\nexport const TitleStatisticWidget = () => {\n const state = useTitleStatisticScript();\n return <TitleStatistic {...state} />;\n};\n","import { FC } from \"react\";\nimport {\n DatePicker,\n Divider,\n Flex,\n ListView,\n Statistic,\n Column,\n Text,\n} from \"@orderly.network/ui\";\nimport { RebatesItem, RebatesReturns } from \"./rebates.script\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\nimport { AuthGuardDataTable } from \"@orderly.network/ui-connector\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Rebates: FC<RebatesReturns> = (props) => {\n return (\n <Flex\n id=\"oui-affiliate-trader-rebates\"\n r={\"2xl\"}\n p={6}\n width={\"100%\"}\n gap={4}\n direction={\"column\"}\n className=\"oui-bg-base-9 oui-tabular-nums\"\n >\n <Title {...props} />\n <Flex\n width={\"100%\"}\n className=\"oui-border-y-2 oui-border-line-6\"\n height={49}\n direction={\"row\"}\n itemAlign={\"center\"}\n >\n <div>\n <DatePicker.range\n size=\"xs\"\n value={props.dateRange}\n onChange={(range) => {\n props.setDateRange(range);\n }}\n max={90}\n disabled={{\n after: new Date(),\n }}\n />\n </div>\n </Flex>\n <List {...props} />\n </Flex>\n );\n};\n\nconst Title: FC<RebatesReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"affiliate.trader.myRebates\")}</Text>\n <Text intensity={36} className=\"oui-text-2xs\">\n {props.displayDate}\n </Text>\n </Flex>\n );\n};\n\nconst List: FC<RebatesReturns> = (props) => {\n const { t } = useTranslation();\n\n const layout767 = useMediaQuery(\"(max-width: 767px)\");\n\n const columns: Column<RebatesItem>[] = [\n {\n title: `${t(\"affiliate.trader.rebates\")} (USDC)`,\n dataIndex: \"referee_rebate\",\n render: (value) => (\n <Text>\n {commifyOptional(value, {\n fix: 6,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n ),\n width: 127,\n },\n {\n title: `${t(\"affiliate.trader.tradingVol\")} (USDC)`,\n dataIndex: \"vol\",\n render: (value) =>\n commifyOptional(value, {\n fix: 2,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n }),\n width: 127,\n },\n {\n title: t(\"common.date\"),\n dataIndex: \"date\",\n render: (value) => (\n <Text.formatted formatString=\"yyyy-MM-dd\">{value}</Text.formatted>\n ),\n width: 127,\n },\n ];\n\n if (layout767) {\n return (\n <ListView<RebatesItem, RebatesItem[]>\n dataSource={props.dataSource}\n className=\"oui-h-[197px] oui-w-full\"\n renderItem={(item, index) => {\n return <Cell item={item} />;\n }}\n />\n );\n }\n\n return (\n <AuthGuardDataTable\n bordered\n loading={props.isLoading}\n columns={columns}\n dataSource={props.dataSource}\n ignoreLoadingCheck={true}\n onRow={(record) => {\n return {\n className: \"oui-h-[41px]\",\n };\n }}\n pagination={props.pagination}\n manualPagination={false}\n />\n );\n};\n\nconst Cell = (props: { item: RebatesItem }) => {\n const { t } = useTranslation();\n\n return (\n <Flex direction={\"column\"} width={\"100%\"}>\n <Flex width={\"100%\"} gap={1}>\n <Statistic\n label={`${t(\"affiliate.trader.rebates\")} (USDC)`}\n className=\"oui-text-xs oui-text-base-contrast-54 oui-flex-1 oui-min-w-[105px]\"\n >\n <Text size=\"sm\" intensity={80}>\n {commifyOptional(props.item.referee_rebate, {\n fix: 6,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n </Statistic>\n <Statistic\n label={`${t(\"affiliate.trader.tradingVol\")} (USDC)`}\n className=\"oui-text-xs oui-text-base-contrast-54 oui-flex-shrink\"\n >\n <Text size=\"sm\" intensity={80}>\n {commifyOptional(props.item.vol, {\n fix: 2,\n fallback: \"0\",\n padEnd: true,\n prefix: \"$\",\n })}\n </Text>\n </Statistic>\n <Statistic\n label={t(\"common.date\")}\n className=\"oui-text-xs oui-text-base-contrast-54 oui-flex-1\"\n align=\"end\"\n >\n <Text.formatted size=\"sm\" intensity={80} formatString=\"yyyy-MM-dd\">\n {props.item.date}\n </Text.formatted>\n </Statistic>\n </Flex>\n <Divider className=\"oui-w-full oui-mt-3\" />\n </Flex>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { DateRange } from \"../../../utils/types\";\nimport {\n useRefereeRebateSummary,\n RefferalAPI,\n useDaily,\n} from \"@orderly.network/hooks\";\nimport { compareDate, formatDateTimeToUTC } from \"../../../utils/utils\";\nimport { subDays, toDate } from \"date-fns\";\nimport { usePagination } from \"@orderly.network/ui\";\n\nexport type RebatesItem = RefferalAPI.RefereeRebateSummary & {\n vol?: number;\n};\n\nexport const useRebatesScript = () => {\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\n from: subDays(new Date(), 90),\n to: subDays(new Date(), 1),\n });\n\n const {\n data: distributionData,\n mutate,\n isLoading,\n } = useRefereeRebateSummary({\n startDate: dateRange?.from,\n endDate: dateRange?.to,\n });\n // const { dailyVolume } = useReferralContext();\n\n const { data: dailyVolume, mutate: dailyVolumeMutate } = useDaily({\n startDate: dateRange?.to,\n endDate: dateRange?.from,\n });\n\n const dataSource = useMemo((): RebatesItem[] => {\n if (typeof distributionData === \"undefined\") return [];\n\n return (\n distributionData\n // .filter((item: any) => item.status === \"COMPLETED\" && item.type === \"REFEREE_REBATE\")\n .map((item) => {\n const createdTime = item.date;\n\n const volume = dailyVolume?.filter((item) => {\n return compareDate(toDate(createdTime), toDate(item.date));\n })?.[0];\n if (volume) {\n return { ...item, vol: volume.perp_volume };\n }\n\n return item;\n })\n );\n }, [distributionData, dailyVolume]);\n\n let displayDate = undefined;\n if ((dataSource?.length || 0) > 0) {\n displayDate = formatDateTimeToUTC(dataSource?.[0].date);\n }\n\n const { pagination, setPage } = usePagination();\n\n useEffect(() => {\n setPage(1);\n }, [dateRange]);\n\n return {\n dateRange,\n setDateRange,\n displayDate,\n dataSource,\n // meta,\n // onPageChange,\n // onPageSizeChange,\n pagination,\n isLoading,\n };\n};\n\nexport type RebatesReturns = ReturnType<typeof useRebatesScript>;\n","import { useRebatesScript } from \"./rebates.script\";\nimport { Rebates } from \"./rebates.ui\";\n\nexport const RebatesWidget = () => {\n const state = useRebatesScript();\n return <Rebates {...state} />;\n};\n","import { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { SummaryWidget } from \"./summary\";\nimport { TitleStatisticWidget } from \"./titleStatistic\";\nimport { RebatesWidget } from \"./rebates\";\nexport const TraderPage = () => {\n return (\n <Flex\n id=\"oui-affiliate-trader-page\"\n className={cn(\n \"oui-h-lvw oui-w-full\",\n // padding\n // \"oui-p-4 lg:oui-p-6 xl:oui-p-3\",\n \"oui-font-semibold\"\n )}\n direction={\"column\"}\n gap={4}\n >\n <Flex\n width={\"100%\"}\n gap={4}\n className=\"oui-flex oui-flex-col xl:oui-flex-row xl:oui-items-stretch\"\n >\n <SummaryWidget />\n <TitleStatisticWidget />\n </Flex>\n <RebatesWidget />\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n cn,\n Flex,\n TabsBase,\n TabsContent,\n TabsList,\n TabsTrigger,\n Text,\n} from \"@orderly.network/ui\";\nimport { AffiliateIcon } from \"../../../components/affiliateIcon\";\nimport { TraderIcon } from \"../../../components/traderIcon\";\nimport { TabTypes } from \"../../../provider\";\nimport { AffiliatePage } from \"../../affiliate\";\nimport { HomePage } from \"../../home\";\nimport { TraderPage } from \"../../trader\";\nimport { TabReturns } from \"./tab.script\";\n\nexport const Tab: FC<\n TabReturns & {\n classNames?: {\n loadding?: string;\n home?: string;\n dashboard?: string;\n };\n }\n> = (props) => {\n const { t } = useTranslation();\n const extendNode = () => {\n if (props.isAffiliate && !props.isTrader) {\n return (\n <Button\n variant=\"contained\"\n color=\"success\"\n size=\"sm\"\n className=\"oui-px-2 oui-flex oui-gap-1\"\n style={{\n position: \"absolute\",\n top: \"50%\",\n right: \"24px\",\n transform: \"translateY(-50%)\",\n }}\n onClick={(e) => {\n props.anATrader();\n }}\n >\n <TraderIcon />\n <Text>{t(\"affiliate.asTrader.title\")}</Text>\n </Button>\n );\n }\n if (!props.isAffiliate && props.isTrader) {\n return (\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"sm\"\n className=\"oui-px-2 oui-flex oui-gap-1\"\n style={{\n position: \"absolute\",\n top: \"50%\",\n right: \"24px\",\n transform: \"translateY(-50%)\",\n }}\n onClick={(e) => {\n props.anAnAffiliate();\n }}\n >\n <AffiliateIcon />\n <Text>{t(\"affiliate.asAffiliate.title\")}</Text>\n </Button>\n );\n }\n\n return undefined;\n };\n\n if (props.isLoading) {\n return (\n <div className={cn(\"oui-max-w-[960px]\", props.classNames?.loadding)}>\n {props.splashPage?.() || <HomePage />}\n </div>\n );\n }\n\n if ((!props.isAffiliate && !props.isTrader) || props.showHome) {\n return (\n <div className={cn(\"oui-max-w-[960px]\", props?.classNames?.home)}>\n <HomePage />\n </div>\n );\n }\n\n return (\n <TabsBase\n id=\"oui-affiliate-dashboard-tab\"\n value={props.tab}\n onValueChange={(e) => {\n props.setTab(e as TabTypes);\n }}\n className={cn(\"oui-w-full\", props.classNames?.dashboard)}\n >\n <TabsList\n className={cn(\n \"oui-px-6 oui-flex oui-flex-row oui-justify-start oui-h-[44px] oui-relative oui-items-end\",\n \"oui-text-base md:oui-text-lg\",\n \"oui-rounded-xl oui-bg-base-9\",\n \"oui-border oui-border-line-6\",\n props.isAffiliate && props.isTrader && \"oui-justify-center\",\n )}\n >\n {props.isAffiliate && (\n <TabsTrigger\n id=\"oui-affiliate-dashboard-tab-affiliate\"\n value={TabTypes.affiliate}\n >\n <Flex direction={\"row\"} gap={1} mb={2}>\n <AffiliateIcon\n fillOpacity={1}\n fill=\"currentColor\"\n className={\n props.tab === TabTypes.affiliate\n ? \"oui-fill-white/[.98]\"\n : \"oui-fill-white/[.36]\"\n }\n />\n <Text>{t(\"common.affiliate\")}</Text>\n </Flex>\n </TabsTrigger>\n )}\n {props.isTrader && (\n <TabsTrigger\n id=\"oui-affiliate-dashboard-tab-trader\"\n value={TabTypes.trader}\n >\n <Flex direction={\"row\"} gap={1} mb={2}>\n <TraderIcon\n fillOpacity={1}\n fill=\"currentColor\"\n className={\n props.tab === TabTypes.trader\n ? \"oui-fill-white/[.98]\"\n : \"oui-fill-white/[.36]\"\n }\n />\n <Text>{t(\"affiliate.trader\")}</Text>\n </Flex>\n </TabsTrigger>\n )}\n {extendNode()}\n </TabsList>\n {props.isAffiliate && (\n <TabsContent value={TabTypes.affiliate} className=\"oui-mt-4\">\n <AffiliatePage />\n </TabsContent>\n )}\n {props.isTrader && (\n <TabsContent value={TabTypes.trader} className=\"oui-mt-4\">\n <TraderPage />\n </TabsContent>\n )}\n </TabsBase>\n );\n};\n","import { ReactNode, useEffect, useMemo } from \"react\";\nimport { TabTypes, useReferralContext } from \"../../../provider\";\n\nexport type TabReturns = {\n tab: string;\n setTab: React.Dispatch<React.SetStateAction<TabTypes>>;\n isAffiliate: boolean;\n isTrader: boolean;\n isLoading: boolean;\n anAnAffiliate: () => void;\n anATrader: () => void;\n splashPage?: () => ReactNode | undefined;\n showHome: boolean;\n setShowHome: (value: boolean) => void;\n};\n\nexport const useTabScript = (): TabReturns => {\n const {\n isAffiliate,\n isTrader,\n isLoading,\n splashPage,\n showHome,\n setShowHome,\n tab,\n setTab,\n } = useReferralContext();\n\n const tableValue = useMemo((): TabTypes => {\n if (isAffiliate && isTrader) {\n return tab;\n } else if (isAffiliate && !isTrader) {\n return TabTypes.affiliate;\n } else if (!isAffiliate && isTrader) {\n return TabTypes.trader;\n } else {\n return TabTypes.affiliate;\n }\n }, [tab, isAffiliate, isTrader]);\n\n useEffect(() => {\n const searchParams = new URLSearchParams(window.location.search);\n const tab = searchParams.get(\"tab\");\n if (tab) {\n setTab(tab as TabTypes);\n }\n }, [window.location.search]);\n\n const anAnAffiliate = () => {\n // if (becomeAnAffiliateUrl !== undefined) {\n // window.open(becomeAnAffiliateUrl, \"_blank\");\n // } else if (onBecomeAnAffiliate !== undefined) {\n // onBecomeAnAffiliate?.();\n // }\n setShowHome(true);\n };\n\n const anATrader = () => {\n setShowHome(true);\n // showReferralPage?.();\n };\n\n return {\n setTab,\n tab: tableValue,\n isAffiliate,\n isTrader,\n isLoading,\n anAnAffiliate,\n anATrader,\n splashPage,\n showHome,\n setShowHome,\n // tab: TabTypes.affiliate,\n // isAffiliate: false,\n // isTrader: false,\n // isLoading: false,\n };\n};\n","import { useTabScript } from \"./tab.script\";\nimport { Tab } from \"./tab.ui\";\n\nexport const TabWidget = (props: {\n classNames?: {\n loadding?: string;\n home?: string;\n dashboard?: string;\n };\n}) => {\n const state = useTabScript();\n return <Tab classNames={props.classNames} {...state} />;\n};\n","import { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { TabWidget } from \"./tab\";\n\nexport const DashboardPage = (props: {\n classNames?: {\n root?: string;\n loadding?: string;\n home?: string;\n dashboard?: string;\n };\n}) => {\n const { classNames = {} } = props;\n const { root, ...rest } = classNames;\n \n return (\n <div id=\"oui-affiliate-dashboard-page\" className={cn(\"oui-w-full oui-tracking-tight\", root)}>\n <TabWidget classNames={rest} />\n </div>\n );\n};\n","import React, { PropsWithChildren } from \"react\";\nimport { Box } from \"@orderly.network/ui\";\nimport { Scaffold, SideBar, SideBarProps } from \"@orderly.network/ui-scaffold\";\n\nexport type AffiliateLayoutProps = {} & SideBarProps;\n\nexport const AffiliateLayout: React.FC<\n PropsWithChildren<AffiliateLayoutProps>\n> = (props) => {\n const { ...rest } = props;\n return (\n <Scaffold leftSidebar={<LeftSidebar {...rest} />}>\n <Box mx={3} my={6}>\n {props.children}\n </Box>\n </Scaffold>\n );\n};\n\nconst LeftSidebar: React.FC<SideBarProps> = (props) => {\n return (\n <Box p={4} m={3} border borderColor={8} r={\"xl\"}>\n <SideBar {...props} />\n </Box>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport type { SideBarProps } from \"@orderly.network/ui-scaffold\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const useLayoutBuilder = (): SideBarProps => {\n const [current, setCurrent] = useState(\"/\");\n // const [sideOpen, setSideOpen] = useState(true);\n const { t } = useTranslation();\n\n const items = useMemo(() => {\n return [\n {\n name: t(\"common.trading\"),\n href: \"/\",\n icon: (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.883 1.5c-.166.01-.393.076-.515.173a2 2 0 0 0-.18.173L.918 6.553a.86.86 0 0 0-.168.475c0 .339.232.543.232.543l7.374 8.633c.005.006.269.301.644.296s.64-.29.644-.296l7.402-8.663s.204-.269.204-.513-.196-.517-.196-.517L13.82 1.848c-.023-.032-.076-.021-.103-.049-.033-.038-.037-.091-.077-.124-.123-.097-.267-.106-.413-.123-.04-.005-.063-.049-.103-.049h-.078zm1.745 1.582h4.744L9 5.795zm-1.675.542 2.294 2.615H3.122zm8.094 0 1.831 2.615h-4.125zM3.328 7.818h4.847v5.672zm6.497 0h4.847c-1.151 1.345-3.422 4.007-4.847 5.672z\"\n fill=\"url(#a)\"\n />\n <defs>\n <linearGradient\n id=\"a\"\n x1=\"17.25\"\n y1=\"9\"\n x2=\".75\"\n y2=\"9\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop\n offset=\"1\"\n stopColor=\"rgb(var(--oui-gradient-brand-start))\"\n />\n </linearGradient>\n </defs>\n </svg>\n ),\n },\n {\n name: t(\"common.affiliate\"),\n href: \"/affiliate\",\n icon: (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.625 4.95c0-.746.604-1.35 1.35-1.35h4.05c.746 0 1.35.604 1.35 1.35v4.62L9 12.195 5.625 9.57zm8.624 3.163-.524.407v-.96l.074.05c.193.128.346.302.45.502m-4.42 5.148L14.4 9.705v3.345a1.35 1.35 0 0 1-1.35 1.35h-8.1a1.35 1.35 0 0 1-1.35-1.35V9.705l4.571 3.556c.488.379 1.17.379 1.658 0M4.275 8.52l-.524-.407c.104-.2.257-.374.45-.503l.074-.049zm0-2.581V4.95a2.7 2.7 0 0 1 2.7-2.7h4.05a2.7 2.7 0 0 1 2.7 2.7v.989l.823.548a2.7 2.7 0 0 1 1.202 2.247v4.316a2.7 2.7 0 0 1-2.7 2.7h-8.1a2.7 2.7 0 0 1-2.7-2.7V8.734a2.7 2.7 0 0 1 1.202-2.247zM9 6.089l.111-.118.005-.005a1.08 1.08 0 0 1 1.58.004 1.223 1.223 0 0 1 0 1.668l-1.515 1.62-.004.004c-.1.102-.26.1-.358-.004l-1.516-1.62a1.223 1.223 0 0 1 0-1.668l.004-.004a1.08 1.08 0 0 1 1.58.004z\"\n fill=\"#fff\"\n fillOpacity=\".54\"\n />\n </svg>\n ),\n },\n ];\n }, [t]);\n\n return {\n items,\n current,\n // open: sideOpen,\n // onOpenChange(open) {\n // setSideOpen(open);\n // },\n onItemSelect: (item) => {\n // @ts-ignore\n setCurrent(item.href);\n },\n };\n};\n","import { PropsWithChildren } from \"react\";\nimport { AffiliateLayout } from \"./layout.ui\";\nimport { useLayoutBuilder } from \"./layout.script\";\n\nexport const AffiliateLayoutWidget = (props: PropsWithChildren) => {\n const state = useLayoutBuilder();\n return <AffiliateLayout {...state} children={props.children} />;\n};\n"]}
|