@orderly.network/trading-rewards 2.6.2 → 2.6.3

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/pages/index/index.tsx","../src/pages/index/title/title.ui.tsx","../src/pages/index/provider.tsx","../src/pages/index/title/title.script.tsx","../src/pages/index/title/title.widget.tsx","../src/pages/index/curEpoch/curEpoch.ui.tsx","../src/pages/index/components/esOrderlyIcon.tsx","../src/pages/index/components/orderlyIcon.tsx","../src/pages/index/curEpoch/rewardsTooltip.tsx","../src/pages/index/curEpoch/curEpoch.script.tsx","../src/pages/index/curEpoch/curEpoch.widget.tsx","../src/pages/index/availableToClaim/availableToClaim.script.tsx","../src/pages/index/availableToClaim/availableToClaim.ui.tsx","../src/pages/index/components/jumpIcon.tsx","../src/pages/index/availableToClaim/availableToClaim.widget.tsx","../src/pages/index/stakeBooster/stakeBooster.script.tsx","../src/pages/index/stakeBooster/stakeBooster.ui.tsx","../src/pages/index/components/rocket.tsx","../src/pages/index/stakeBooster/stakeBooster.widget.tsx","../src/pages/index/rewardHistory/rewardsHistory.ui.tsx","../src/pages/index/rewardHistory/rewardsHistory.script.tsx","../src/pages/index/rewardHistory/rewardsHistory.widget.tsx","../src/pages/index/page.tsx","../src/layout/layout.script.tsx","../src/layout/layout.ui.tsx","../src/layout/layout.widget.tsx"],"names":["index_exports","__export","AvailableToClaim","AvailableToClaimWidget","CurEpoch","CurEpochWidget","HomePage","RewardHistory","RewardsHistoryWidget","StakeBooster","StakeBoosterWidget","Title","TitleWidget","TradingRewardsProvider","useCurEpochScript","Divider","Flex","Text","useTranslation","jsx","jsxs","props","title","subtitle","content","docOpenOptions","t","MultiLineText","createContext","useContext","useMemo","TWType","useEpochInfo","useAllBrokers","useGetClaimed","DistributionId","useCurEpochEstimate","useWalletRewardsHistory","useConfig","useTradingRewardsStatus","TradingRewardsContext","type","showEpochPauseCountdown","titleConfig","children","brokerId","statusInfo","totalOrderClaimedReward","totalEsOrderClaimedReward","brokers","curEpochEstimate","walletRewardsHistory","epochList","brokerName","memoizedValue","useTradingRewardsContext","useTitleScript","state","useState","useEffect","EpochStatus","AccountStatusEnum","Box","cn","AuthGuard","commifyOptional","EsOrderlyIcon","OrderlyIcon","React","Tooltip","RewardsTooltip","open","setOpen","e","Fragment","curEpochInfo","startTime","endTime","curEpochId","max_reward_amount","token","isOrder","pausedEpochTimeDown","lastCompletedEpoch","nextEpoch","item","showPauseCountdown","Countdown","TwitterLInk","Statics","getDate","EstRewards","highLight","text","targetTimestamp","isStandalone","timeLeft","setTimeLeft","intervalId","now","distance","days","hours","minutes","seconds","num","value","timestamp","date","month","day","ArrowRightIcon","useAccount","useWalletConnector","useAppContext","estimate","wrongNetwork","disabledConnect","connect","hideData","notConnected","rewardsTooltip","otherRewards","a","b","curRewards","useCallback","useDataTap","Decimal","ChainNamespace","ENVType","useGetEnv","useAvailableScript","orderClaimedRewardData","esOrderClaimedRewardData","namespace","data","lifetimeOrderReward","lifetimeEsOrderReward","env","goToClaim","url","calculateRemainingReward","totalReward","claimedReward","remainingReward","availableOrder","availableEsOrder","orderValue","esorderValue","JumpIcon","useStakeBoosterScript","stakeNow","estimateValue","booster","estStakeBoost","RocketIcon","commify","calcValue","ListView","DataTable","useMediaQuery","AuthGuardEmpty","List","index","MobileCell","DesktopList","r_warret","formatTimestamp","columns","record","year","amPm","formattedHours","formattedMinutes","useAccountRewardsHistory","usePagination","getTimestamp","useRewardsHistoryScript","account","epochInfos","isNotStared","history","accountHistory","combineData","id","info","_findIndex","brokerList","curBrokerIndex","i","element","status","curDate","pagination","TradingRewardsLeftSidebarPath","useTradingRewardsLayoutScript","current","setCurrent","items","hideSideBar","omit","Scaffold","TradingRewardsLayout","classNames","rest","TradingRewardsLayoutWidget"],"mappings":"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","sourcesContent":["\nexport * from \"./title\";\nexport * from \"./curEpoch\";\nexport * from \"./availableToClaim\";\nexport * from \"./stakeBooster\";\nexport * from \"./rewardHistory\";\nexport { TradingRewardsProvider} from \"./provider\";\nexport { HomePage } from \"./page\";\n","import { Divider, Flex, Text } from \"@orderly.network/ui\";\nimport { FC } from \"react\";\nimport { TitleConfig } from \"./title.script\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Title: FC<TitleConfig> = (props) => {\n const { title, subtitle, content, docOpenOptions } = props;\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-title\"\n p={6}\n direction={\"column\"}\n itemAlign={\"start\"}\n gap={4}\n className=\"oui-bg-base-9 oui-font-semibold\"\n r={\"2xl\"}\n width={\"100%\"}\n >\n {title || <Text size=\"lg\">{t(\"common.tradingRewards\")}</Text>}\n <Divider intensity={8} className=\"oui-w-full\" />\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={1}>\n {subtitle || (\n <Text size=\"base\">\n {t(\"tradingRewards.subtitle\", {\n brokerName: props.brokerName,\n })}\n </Text>\n )}\n\n {content || <MultiLineText docOpenOptions={docOpenOptions} />}\n </Flex>\n </Flex>\n );\n};\n\nconst MultiLineText: FC<{\n docOpenOptions?: {\n url?: string;\n target?: string;\n features?: string;\n };\n}> = (props) => {\n const { t } = useTranslation();\n\n // const clickableParts = [\n // {\n // content: \"Learn more here\",\n // isLink: true,\n // },\n // // {\n // // content: \"about Orderly Trading rewards Program.\",\n // // isLink: false,\n // // },\n // // {\n // // content: \"Trading rewards Docs\",\n // // isLink: true,\n // // },\n // ];\n // const renderText = () => {\n // return clickableParts.map((item, index) => {\n // return (\n // <span\n // key={index}\n // className={`${\n // item.isLink\n // ? \"oui-text-primary-light hover:oui-text-primary-darken oui-cursor-pointer\"\n // : \"\"\n // }`}\n // dangerouslySetInnerHTML={{ __html: item.content }}\n // />\n // );\n // });\n // };\n\n return (\n <div\n className=\"oui-text-sm oui-text-base-contrast-54 oui-font-normal oui-flex oui-gap-1 oui-items-center hover:oui-text-primary-darken oui-text-primary-light oui-cursor-pointer\"\n onClick={() => [\n window.open(\n props.docOpenOptions?.url,\n props.docOpenOptions?.target,\n props.docOpenOptions?.features\n ),\n ]}\n >\n <span className=\"oui-text-primary-light hover:oui-text-primary-darken oui-cursor-pointer\">\n {t(\"tradingRewards.learnMore\")}\n </span>\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 </div>\n );\n};\n\nexport default MultiLineText;\n","import React, {\n PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from \"react\";\nimport {\n TWType,\n EpochInfoType,\n useEpochInfo,\n useAllBrokers,\n useGetClaimed,\n DistributionId,\n useCurEpochEstimate,\n CurrentEpochEstimate,\n useWalletRewardsHistory,\n WalletRewardsHistoryReturns,\n Brokers,\n useConfig,\n useTradingRewardsStatus,\n StatusInfo,\n} from \"@orderly.network/hooks\";\nimport type { TitleConfig } from \"./title/title.script\";\n\nexport type TradingRewardsState = {\n type: TWType;\n brokerId: string;\n brokerName?: string;\n brokers?: Brokers;\n epochList: EpochInfoType;\n totalOrderClaimedReward: [number | undefined, { refresh: () => void }];\n totalEsOrderClaimedReward: [number | undefined, { refresh: () => void }];\n curEpochEstimate?: CurrentEpochEstimate;\n walletRewardsHistory: WalletRewardsHistoryReturns;\n titleConfig: TitleConfig;\n statusInfo: StatusInfo | undefined;\n showEpochPauseCountdown?: boolean;\n};\n\nexport const TradingRewardsContext = createContext<TradingRewardsState>(\n {} as TradingRewardsState,\n);\n\nexport const TradingRewardsProvider: React.FC<\n PropsWithChildren<{\n type?: TWType;\n titleConfig?: TitleConfig;\n showEpochPauseCountdown?: boolean;\n }>\n> = (props) => {\n const {\n type = TWType.normal,\n showEpochPauseCountdown,\n titleConfig = {\n docOpenOptions: {\n url: \"https://orderly.network/docs/introduction/tokenomics/trading-rewards\",\n target: \"_blank\",\n },\n },\n children,\n } = props;\n\n const brokerId = useConfig(\"brokerId\");\n\n const { statusInfo } = useTradingRewardsStatus(type === TWType.mm);\n const totalOrderClaimedReward = useGetClaimed(\n type === TWType.mm ? DistributionId.mmOrder : DistributionId.order,\n );\n const totalEsOrderClaimedReward = useGetClaimed(\n type === TWType.mm ? DistributionId.mmEsOrder : DistributionId.esORder,\n );\n\n const [brokers] = useAllBrokers();\n\n const [curEpochEstimate] = useCurEpochEstimate(type);\n\n const walletRewardsHistory = useWalletRewardsHistory(type);\n\n const epochList = useEpochInfo(type);\n\n const brokerName = useMemo(() => {\n return brokers?.[brokerId];\n }, [brokerId, brokers]);\n\n const memoizedValue = useMemo<TradingRewardsState>(() => {\n return {\n type: type,\n totalOrderClaimedReward,\n totalEsOrderClaimedReward,\n epochList,\n curEpochEstimate,\n walletRewardsHistory,\n titleConfig,\n brokerId,\n brokerName,\n brokers,\n statusInfo,\n showEpochPauseCountdown: showEpochPauseCountdown ?? false,\n };\n }, [\n type,\n totalOrderClaimedReward,\n totalEsOrderClaimedReward,\n epochList,\n curEpochEstimate,\n walletRewardsHistory,\n titleConfig,\n brokerId,\n brokerName,\n brokers,\n statusInfo,\n showEpochPauseCountdown,\n ]);\n\n return (\n <TradingRewardsContext.Provider value={memoizedValue}>\n {children}\n </TradingRewardsContext.Provider>\n );\n};\n\nexport const useTradingRewardsContext = () => {\n return useContext<TradingRewardsState>(TradingRewardsContext);\n};\n","import { ReactNode } from \"react\";\nimport { useTradingRewardsContext } from \"../provider\";\n\nexport type TitleConfig = {\n /// default is `Trading rewards`\n title?: string | ReactNode;\n /// default is `Trade with Orderly’s to earn ORDER.`\n subtitle?: string | ReactNode;\n /// default is `Learn more about Orderly Trading rewards Program in Trading rewards Docs`\n content?: string | ReactNode;\n /// default is { url: 'https://orderly.network/docs/introduction/tokenomics/trading-rewards', target: \"_blank\"}\n docOpenOptions?: {\n url?: string;\n target?: string;\n features?: string;\n };\n brokerName?: string;\n};\n\nexport const useTitleScript = (): TitleConfig => {\n\n const { titleConfig } = useTradingRewardsContext();\n\n return titleConfig;\n};\n","import { useTitleScript } from \"./title.script\";\nimport { Title } from \"./title.ui\";\n\nexport const TitleWidget = () => {\n const state = useTitleScript();\n return <Title {...state} />;\n};\n","import { useState, useEffect, FC, ReactNode, SVGProps, useMemo } from \"react\";\nimport { EpochStatus } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, Flex, Text, cn } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { CurEpochReturns } from \"./curEpoch.script\";\nimport { RewardsTooltip } from \"./rewardsTooltip\";\n\nexport const CurEpoch: FC<CurEpochReturns> = (props) => {\n const { t } = useTranslation();\n\n const state = props;\n const curEpochInfo = state.epochList?.[1].curEpochInfo;\n const epochList = state.epochList?.[0];\n const startTime = curEpochInfo?.start_time;\n const endTime = curEpochInfo?.end_time;\n const curEpochId = curEpochInfo?.epoch_id;\n const max_reward_amount = curEpochInfo?.max_reward_amount;\n const token = curEpochInfo?.epoch_token;\n\n const isOrder = curEpochInfo\n ? `${curEpochInfo?.epoch_token}`.toLowerCase() === \"order\"\n : undefined;\n\n const pausedEpochTimeDown = useMemo(() => {\n if (!props.showEpochPauseCountdown) {\n return undefined;\n }\n if (!epochList || props.statusInfo?.epochStatus !== EpochStatus.paused) {\n return undefined;\n }\n\n const lastCompletedEpoch = props.statusInfo?.lastCompletedEpoch;\n if (lastCompletedEpoch === undefined) {\n return undefined;\n }\n const nextEpoch = lastCompletedEpoch + 1;\n const epoch = epochList.find((item: any) => item.epoch_id === nextEpoch);\n return epoch?.start_time;\n }, [props.statusInfo?.epochStatus, epochList]);\n\n const showPauseCountdown = useMemo(() => {\n return (\n props.statusInfo?.epochStatus === EpochStatus.paused &&\n pausedEpochTimeDown\n );\n }, [props.statusInfo?.epochStatus, pausedEpochTimeDown]);\n\n if (props.statusInfo?.epochStatus !== EpochStatus.active) {\n return (\n <Flex\n id=\"oui-tradingRewards-home-currentEpoch\"\n r={\"2xl\"}\n className=\"oui-bg-base-9 oui-font-semibold oui-p-10\"\n width={\"100%\"}\n height={\"100%\"}\n direction={\"column\"}\n // justify={\"stretch\"}\n itemAlign={\"stretch\"}\n >\n <Flex\n gap={2}\n direction={\"column\"}\n justify={\"center\"}\n itemAlign={\"center\"}\n className=\"oui-size-full\"\n >\n {showPauseCountdown ? (\n <Flex\n gap={2}\n direction={\"column\"}\n justify={\"center\"}\n itemAlign={\"center\"}\n >\n <Text className=\"oui-text-base-contrast-54 oui-text-sm\">\n {t(\"tradingRewards.epochPauseCountdown.title\")}\n </Text>\n <Countdown targetTimestamp={pausedEpochTimeDown} isStandalone />\n </Flex>\n ) : (\n <Flex\n className=\"oui-text-base-contrast-54 oui-text-sm oui-text-center\"\n justify={\"center\"}\n itemAlign={\"center\"}\n >\n {props.statusInfo?.epochStatus === EpochStatus.paused\n ? t(\"tradingRewards.eopchStatus.pause\")\n : t(\"tradingRewards.eopchStatus.ended\")}\n </Flex>\n )}\n {props.statusInfo?.epochStatus === EpochStatus.paused && (\n <div\n className={cn(\n \"oui-w-full\",\n showPauseCountdown ? \"oui-mt-2\" : \"oui-mt-0\",\n )}\n >\n <TwitterLInk />\n </div>\n )}\n </Flex>\n </Flex>\n );\n }\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-currentEpoch\"\n r={\"2xl\"}\n className=\"oui-bg-base-9 oui-font-semibold\"\n width={\"100%\"}\n height={\"100%\"}\n direction={\"column\"}\n // justify={\"stretch\"}\n itemAlign={\"stretch\"}\n >\n <Countdown targetTimestamp={endTime} />\n <Flex p={6} direction={\"column\"} gap={4} className=\"oui-h-full\">\n <Flex direction={\"row\"} gap={3} width={\"100%\"} justify={\"around\"}>\n <Statics\n title={t(\"tradingRewards.epoch\")}\n highLight={curEpochId ? `${curEpochId}` : \"--\"}\n text={\n startTime && endTime\n ? `${getDate(startTime)} - ${getDate(endTime)}`\n : \"\"\n }\n />\n <Statics\n title={t(\"tradingRewards.epochRewards\")}\n highLight={commifyOptional(max_reward_amount, { fix: 0 })}\n text={token}\n />\n </Flex>\n <EstRewards\n isOrder={isOrder}\n direction={state.notConnected ? \"row\" : \"column\"}\n justify={state.notConnected ? \"between\" : \"center\"}\n hideData={state.hideData}\n estRewards={state.hideData ? \"--\" : props.estimate?.est_r_wallet}\n rewardsTooltip={props.rewardsTooltip}\n background={\n state.notConnected\n ? \"linear-gradient(28.29deg, #1B1D22 21.6%, #26292E 83.23%)\"\n : \"linear-gradient(0deg, #2D0061 2.62%, #BD6BED 86.5%)\"\n }\n />\n {/* {state.notConnected && (\n <Button\n variant=\"gradient\"\n fullWidth\n onClick={(e) => {\n e.stopPropagation();\n state.connect();\n }}\n >\n Connect wallet\n </Button>\n )} */}\n\n <div className=\"oui-w-full\">\n <AuthGuard\n status={AccountStatusEnum.SignedIn}\n buttonProps={{ fullWidth: true }}\n >\n <></>\n </AuthGuard>\n </div>\n </Flex>\n </Flex>\n );\n};\n\nconst EstRewards: FC<{\n isOrder?: boolean;\n estRewards?: number | string;\n direction: \"row\" | \"column\";\n justify: \"center\" | \"between\";\n background: string;\n hideData: boolean;\n rewardsTooltip:\n | {\n brokerName: string | undefined;\n curRewards: number;\n otherRewards: number;\n }\n | undefined;\n}> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n direction={props.direction}\n gap={2}\n py={4}\n px={6}\n width={\"100%\"}\n r=\"xl\"\n itemAlign={\"center\"}\n justify={props.justify}\n style={{\n background: props.background,\n }}\n className=\"oui-flex-1 oui-h-full\"\n >\n <Text className=\"oui-text-base xl:oui-text-lg oui-text-base-contrast-54\">\n {t(\"tradingRewards.myEstRewards\")}\n </Text>\n <Flex direction={\"row\"} gap={3}>\n {props.isOrder == true && (\n <OrderlyIcon className=\"oui-w-5 oui-h-5 md:oui-w-6 md:oui-h-6 lg:oui-w-7 lg:oui-h-7 xl:oui-w-8 xl:oui-h-8\" />\n )}\n {props.isOrder == false && (\n <EsOrderlyIcon className=\"oui-w-5 oui-h-5 md:oui-w-6 md:oui-h-6 lg:oui-w-7 lg:oui-h-7 xl:oui-w-8 xl:oui-h-8\" />\n )}\n <Text\n children={commifyOptional(props.estRewards, { fix: 2 })}\n className=\"oui-text-xl md:oui-text-2xl xl:oui-text-[32px]\"\n />\n {props.rewardsTooltip && (\n <RewardsTooltip rewardsTooltip={props.rewardsTooltip} />\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst Statics: FC<{\n title: string;\n highLight?: string;\n text?: string;\n}> = (props) => {\n const { title, highLight, text } = props;\n return (\n <Flex\n // px={1}\n py={2}\n justify={\"between\"}\n direction={\"column\"}\n className=\"flex-1\"\n gap={2}\n >\n <Text\n className={cn(\n \"oui-text-base-contrast-54\",\n // font size\n \"oui-text-xs md:oui-text-sm xl:oui-text-base\",\n /// leading\n \"oui-leading-[20px] xl:oui-leading-[24px]\",\n )}\n >\n {title}\n </Text>\n <Flex direction={\"row\"} gap={1} itemAlign={\"end\"} justify={\"center\"}>\n <Text.gradient\n color=\"brand\"\n angle={90}\n className=\"oui-text-base md:oui-text-lg lg:oui-text-xl xl:oui-text-2xl\"\n >\n {highLight}\n </Text.gradient>\n <Text\n intensity={80}\n className=\"oui-mb-[3px] oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n >\n {text}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\nconst Countdown: FC<{\n targetTimestamp?: number;\n isStandalone?: boolean;\n}> = (props) => {\n const { targetTimestamp, isStandalone } = props;\n const { t } = useTranslation();\n const [timeLeft, setTimeLeft] = useState({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n\n useEffect(() => {\n const intervalId = setInterval(() => {\n if (typeof targetTimestamp === \"undefined\") return;\n const now = new Date().getTime();\n const distance = targetTimestamp - now;\n\n if (distance < 0) {\n clearInterval(intervalId as unknown as number);\n setTimeLeft({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n } else {\n const days = Math.floor(distance / (1000 * 60 * 60 * 24));\n const hours = Math.floor(\n (distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60),\n );\n const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\n const seconds = Math.floor((distance % (1000 * 60)) / 1000);\n\n setTimeLeft({ days, hours, minutes, seconds });\n }\n }, 1000);\n\n return () => clearInterval(intervalId as unknown as number);\n }, [targetTimestamp]);\n\n const num = (value: string) => {\n return (\n <Text className=\"oui-text-sm oui-text-base-contrast md:oui-text-base lg:oui-text-lg \">\n {value}\n </Text>\n );\n };\n\n return (\n <Box\n className=\"oui-rounded-t-2xl oui-font-semibold oui-text-base-contrast-54\"\n gradient={isStandalone ? undefined : \"neutral\"}\n angle={180}\n width={\"full\"}\n >\n <Flex justify={\"center\"} gap={1}>\n {isStandalone ? null : <span>{`${t(\"common.countdown\")}: `}</span>}\n <Flex\n direction={\"row\"}\n itemAlign={\"end\"}\n gap={1}\n className={cn(\n \"oui-text-2xs md:oui-text-xs lg:oui-text-sm\",\n isStandalone ? \"oui-py-0\" : \"oui-py-[13px]\",\n )}\n >\n {num(`${timeLeft.days}`.padStart(2, \"0\"))}\n <span>D</span>\n {num(`${timeLeft.hours}`.padStart(2, \"0\"))}\n <span>H</span>\n {num(`${timeLeft.minutes}`.padStart(2, \"0\"))}\n <span>M</span>\n {num(`${timeLeft.seconds}`.padStart(2, \"0\"))}\n <span>S</span>\n </Flex>\n </Flex>\n </Box>\n );\n};\n\nconst CountDownNum = (props: { children?: ReactNode }) => {\n return (\n <Text className=\"oui-text-sm oui-text-base-contrast md:oui-text-base lg:oui-text-lg \">\n {props.children}\n </Text>\n );\n};\n\nconst getDate = (timestamp?: number) => {\n if (!timestamp) return \"\";\n\n const date = new Date(timestamp);\n\n // return format(timestamp, \"MMM. d\");\n\n const monthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ];\n const month = monthNames[date.getUTCMonth()];\n const day = date.getUTCDate();\n return `${month}. ${day}`;\n};\n\nexport const ArrowRightIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"mask0_1997_45723\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"21\"\n height=\"20\"\n >\n <rect x=\"0.5\" width=\"20\" height=\"20\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_1997_45723)\">\n <path\n d=\"M12.0384 14.7111L11.1603 13.8073L14.343 10.6246H4.25V9.37463H14.343L11.1603 6.19192L12.0384 5.28809L16.75 9.99961L12.0384 14.7111Z\"\n // fill=\"black\"\n // fill-opacity=\"0.8\"\n />\n </g>\n </svg>\n);\nconst TwitterLInk: FC = () => {\n const { t } = useTranslation();\n return (\n <Flex\n gap={1}\n itemAlign={\"center\"}\n justify={\"center\"}\n className=\"oui-group oui-cursor-pointer oui-fill-base-contrast-36 oui-text-sm oui-text-base-contrast-36 group-hover:oui-text-base-contrast-80\"\n onClick={() => window.open(\"https://x.com/OrderlyNetwork\")}\n >\n <div className=\"oui-cursor-pointer oui-fill-base-contrast-36 oui-text-sm oui-text-base-contrast-36 group-hover:oui-text-base-contrast-80\">\n {t(\"tradingRewards.eopchStatus.linkDescription\")}\n </div>\n <ArrowRightIcon className=\"oui-text-fill-base-contrast-36 oui-fill-base-contrast-36 group-hover:oui-fill-base-contrast-80\" />\n </Flex>\n );\n};\n","export const EsOrderlyIcon = (props: {className?: string}) => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n >\n <g clipPath=\"url(#clip0_862_2449)\">\n <path\n d=\"M10.0249 19.9361C15.5202 19.9361 19.9751 15.4813 19.9751 9.98589C19.9751 4.49052 15.5202 0.0356445 10.0249 0.0356445C4.52949 0.0356445 0.0746155 4.49052 0.0746155 9.98589C0.0746155 15.4813 4.52949 19.9361 10.0249 19.9361Z\"\n fill=\"url(#paint0_linear_862_2449)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.0992 5.0347C14.1824 5.0347 14.2202 4.93253 14.1556 4.88017C13.0272 3.96625 11.59 3.41876 10.0249 3.41876C8.4598 3.41876 7.02258 3.96625 5.89428 4.88017C5.82963 4.93253 5.86743 5.0347 5.95063 5.0347H14.0992ZM7.2658 11.6648C7.34763 11.6648 7.42329 11.707 7.47028 11.7739C8.03421 12.5781 8.96819 13.1038 10.025 13.1038C11.0817 13.1038 12.0156 12.5781 12.5796 11.7739C12.6266 11.707 12.7022 11.6648 12.7841 11.6648H16.2198C16.2985 11.6648 16.3559 11.7395 16.334 11.8151C15.5419 14.5521 13.0171 16.5531 10.0249 16.5531C7.03275 16.5531 4.50795 14.5521 3.71578 11.8151C3.6939 11.7395 3.75127 11.6648 3.83 11.6648H7.2658ZM12.335 7.8919C12.3825 7.94426 12.4493 7.97581 12.5199 7.97581H16.114C16.1955 7.97581 16.2533 7.89653 16.2264 7.81972C15.9727 7.0936 15.5951 6.42564 15.119 5.84118C15.0743 5.78631 15.007 5.75526 14.9361 5.75526H5.11354C5.04279 5.75526 4.97543 5.78631 4.93075 5.84118C4.4546 6.42564 4.07701 7.0936 3.82337 7.81972C3.79653 7.89653 3.8543 7.97581 3.93567 7.97581H7.52983C7.60053 7.97581 7.66725 7.94426 7.71477 7.8919C8.28522 7.263 9.10892 6.86807 10.0249 6.86807C10.9408 6.86807 11.7646 7.263 12.335 7.8919ZM13.028 10.8273C13.0114 10.8862 13.0549 10.9458 13.116 10.9458H16.4447C16.4894 10.9458 16.5273 10.913 16.5333 10.8688C16.572 10.5798 16.5921 10.285 16.5921 9.98539C16.5921 9.56935 16.5534 9.1623 16.4795 8.76771C16.4716 8.72551 16.4345 8.6952 16.3916 8.6952H13.0042C12.9388 8.6952 12.895 8.763 12.9195 8.82377C13.0636 9.18276 13.1429 9.57477 13.1429 9.98529C13.1429 10.277 13.1029 10.5595 13.028 10.8273ZM6.9338 10.9458C6.99492 10.9458 7.03829 10.8862 7.02183 10.8273C6.94688 10.5595 6.90682 10.277 6.90682 9.98529C6.90682 9.57477 6.98617 9.18276 7.13037 8.82377C7.15477 8.763 7.11101 8.6952 7.04553 8.6952H3.65817C3.61522 8.6952 3.5782 8.72551 3.5703 8.76771C3.49631 9.1623 3.45761 9.56935 3.45761 9.98539C3.45761 10.285 3.47767 10.5798 3.51651 10.8688C3.52246 10.913 3.56045 10.9458 3.60511 10.9458H6.9338Z\"\n fill=\"url(#paint1_linear_862_2449)\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_862_2449\"\n x1=\"10.0249\"\n y1=\"-2.24058\"\n x2=\"10.0249\"\n y2=\"21.2774\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"#EDE9F4\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_862_2449\"\n x1=\"10.0249\"\n y1=\"3.41876\"\n x2=\"10.0249\"\n y2=\"16.5531\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#C750FF\" />\n <stop offset=\"1\" stopColor=\"#5800E8\" />\n </linearGradient>\n <clipPath id=\"clip0_862_2449\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","export const OrderlyIcon = (props: {\n className?: string;\n}) => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n >\n <g clipPath=\"url(#clip0_862_2443)\">\n <path\n d=\"M10.0249 19.9491C15.5202 19.9491 19.9751 15.4942 19.9751 9.99883C19.9751 4.50346 15.5202 0.048584 10.0249 0.048584C4.52949 0.048584 0.0746155 4.50346 0.0746155 9.99883C0.0746155 15.4942 4.52949 19.9491 10.0249 19.9491Z\"\n fill=\"url(#paint0_linear_862_2443)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.1556 4.8931C14.2202 4.94547 14.1824 5.04764 14.0992 5.04764H5.95063C5.86743 5.04764 5.82963 4.94547 5.89428 4.8931C7.02258 3.97918 8.4598 3.4317 10.0249 3.4317C11.59 3.4317 13.0272 3.97918 14.1556 4.8931Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.47028 11.7869C7.4233 11.7199 7.34764 11.6777 7.26581 11.6777H3.83C3.75128 11.6777 3.69391 11.7525 3.71579 11.8281C4.50796 14.565 7.03275 16.566 10.0249 16.566C13.0171 16.566 15.5419 14.565 16.334 11.8281C16.3559 11.7525 16.2985 11.6777 16.2198 11.6777H12.7841C12.7022 11.6777 12.6266 11.7199 12.5796 11.7869C12.0156 12.5911 11.0817 13.1167 10.025 13.1167C8.96818 13.1167 8.03421 12.5911 7.47028 11.7869Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.335 7.90476C12.3825 7.95713 12.4493 7.98867 12.5199 7.98867H16.114C16.1955 7.98867 16.2533 7.9094 16.2264 7.83259C15.9727 7.10647 15.5951 6.43851 15.119 5.85405C15.0743 5.79918 15.007 5.76813 14.9361 5.76813H5.11354C5.04278 5.76813 4.97543 5.79918 4.93074 5.85405C4.45459 6.43851 4.07701 7.10647 3.82337 7.83259C3.79652 7.9094 3.85428 7.98867 3.93567 7.98867H7.52982C7.60052 7.98867 7.66725 7.95713 7.71475 7.90476C8.28522 7.27587 9.10892 6.88093 10.0249 6.88093C10.9408 6.88093 11.7646 7.27587 12.335 7.90476Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.116 10.9587C13.0549 10.9587 13.0114 10.8991 13.028 10.8402C13.1029 10.5723 13.1429 10.29 13.1429 9.99822C13.1429 9.5877 13.0636 9.19568 12.9195 8.83669C12.895 8.77593 12.9388 8.70813 13.0042 8.70813H16.3916C16.4345 8.70813 16.4716 8.73843 16.4795 8.78064C16.5534 9.17523 16.5921 9.58228 16.5921 9.99832C16.5921 10.2979 16.572 10.5927 16.5333 10.8816C16.5273 10.9259 16.4894 10.9587 16.4447 10.9587H13.116ZM7.02183 10.8402C7.03829 10.8991 6.99492 10.9587 6.93381 10.9587H3.60511C3.56045 10.9587 3.52246 10.9259 3.51651 10.8816C3.47767 10.5927 3.45761 10.2979 3.45761 9.99832C3.45761 9.58228 3.49631 9.17523 3.5703 8.78064C3.5782 8.73843 3.61523 8.70813 3.65817 8.70813H7.04553C7.11101 8.70813 7.15477 8.77593 7.13037 8.83669C6.98617 9.19568 6.90682 9.5877 6.90682 9.99822C6.90682 10.29 6.94688 10.5723 7.02183 10.8402Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_862_2443\"\n x1=\"10.0249\"\n y1=\"0.0486119\"\n x2=\"10.0249\"\n y2=\"19.9491\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#C750FF\" />\n <stop offset=\"1\" stopColor=\"#5800E8\" />\n </linearGradient>\n <clipPath id=\"clip0_862_2443\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n };\n ","import React, { FC, useState } from \"react\";\nimport { Flex, Text, Tooltip } from \"@orderly.network/ui\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport type RewardsTooltipProps = {\n brokerName: string | undefined;\n curRewards: number;\n otherRewards: number;\n};\n\nexport const RewardsTooltip: FC<{\n rewardsTooltip?: RewardsTooltipProps;\n children?: React.ReactElement;\n className?: string;\n arrowClassName?: string;\n align?: \"start\" | \"center\" | \"end\";\n}> = (props) => {\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n\n const content = (): any => {\n return (\n <Flex\n direction={\"column\"}\n className=\"oui-leading-[1.5] oui-text-2xs oui-text-base-contrast-80 oui-min-w-[204px]\"\n gap={1}\n >\n <Flex gap={1} width={\"100%\"}>\n <Text className=\"oui-flex-1\">{props.rewardsTooltip?.brokerName}</Text>\n <Text>\n {commifyOptional(props.rewardsTooltip?.curRewards, { fix: 2 })}\n </Text>\n </Flex>\n <Flex gap={1} width={\"100%\"}>\n <Text className=\"oui-flex-1\">\n {t(\"tradingRewards.otherOrderlyDex\")}\n </Text>\n <Text>\n {commifyOptional(props.rewardsTooltip?.otherRewards, { fix: 2 })}\n </Text>\n </Flex>\n </Flex>\n );\n };\n\n return (\n <Tooltip\n content={content()}\n align={props.align}\n className={props.className}\n open={open}\n onOpenChange={setOpen}\n arrow={{\n className: props.arrowClassName,\n }}\n delayDuration={100}\n >\n {!!props.children ? (\n React.cloneElement(props.children!, {\n onClick: (e: any) => {\n e.preventDefault();\n setOpen(!open);\n },\n })\n ) : (\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=\"oui-cursor-pointer\"\n onClick={(e) => {\n e.preventDefault();\n setOpen(!open);\n }}\n >\n <path\n d=\"M10.5 1.678a8.333 8.333 0 1 0-.001 16.667 8.333 8.333 0 0 0 0-16.667m0 4.167a.833.833 0 1 1-.001 1.667.833.833 0 0 1 0-1.667m0 2.5c.46 0 .832.373.832.833v4.167a.833.833 0 0 1-1.666 0V9.178c0-.46.373-.833.833-.833\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n </svg>\n )}\n </Tooltip>\n );\n};\n","import { useMemo } from \"react\";\nimport { useAccount, useWalletConnector } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useTradingRewardsContext } from \"../provider\";\nimport { RewardsTooltipProps } from \"./rewardsTooltip\";\n\nexport const useCurEpochScript = () => {\n const {\n epochList,\n curEpochEstimate: estimate,\n brokerId,\n brokerName,\n statusInfo,\n showEpochPauseCountdown,\n } = useTradingRewardsContext();\n const { wrongNetwork, disabledConnect } = useAppContext();\n const { connect } = useWalletConnector();\n const { state } = useAccount();\n\n const hideData = useMemo(() => {\n return (\n state.status <= AccountStatusEnum.SignedIn ||\n wrongNetwork ||\n disabledConnect\n );\n }, [state, wrongNetwork, disabledConnect]);\n\n const notConnected = useMemo(() => {\n return state.status <= AccountStatusEnum.SignedIn || disabledConnect;\n }, [state, disabledConnect]);\n\n const rewardsTooltip = useMemo((): RewardsTooltipProps | undefined => {\n if (typeof estimate === \"undefined\" || estimate === null) return undefined;\n const otherRewards = estimate.rows\n .filter((item) => item.broker_id !== brokerId)\n .reduce((a, b) => a + b.est_r_account, 0);\n const curRewards = Number(estimate.est_r_wallet) - otherRewards;\n return {\n brokerName,\n curRewards,\n otherRewards,\n };\n }, [brokerId, brokerName, estimate]);\n\n return {\n epochList,\n estimate,\n hideData,\n notConnected,\n connect,\n rewardsTooltip: hideData ? undefined : rewardsTooltip,\n statusInfo,\n showEpochPauseCountdown,\n };\n};\n\nexport type CurEpochReturns = ReturnType<typeof useCurEpochScript>;\n","import { FC } from \"react\";\nimport { CurEpoch } from \"./curEpoch.ui\";\nimport { useCurEpochScript } from \"./curEpoch.script\";\n\nexport const CurEpochWidget: FC = (props) => {\n const state = useCurEpochScript();\n return <CurEpoch {...state}/>;\n};\n","import { useCallback, useMemo } from \"react\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { ENVType, useGetEnv, useWalletConnector } from \"@orderly.network/hooks\";\nimport { useTradingRewardsContext } from \"../provider\";\n\nexport type AvailableReturns = {\n order?: number;\n esOrder?: number;\n goToClaim?: (e: any) => void;\n};\n\nexport const useAvailableScript = (): AvailableReturns => {\n const {\n totalOrderClaimedReward,\n walletRewardsHistory,\n totalEsOrderClaimedReward,\n } = useTradingRewardsContext();\n const [orderClaimedRewardData] = totalOrderClaimedReward;\n const [esOrderClaimedRewardData] = totalEsOrderClaimedReward;\n\n const { namespace } = useWalletConnector();\n\n const [data] = walletRewardsHistory;\n\n const lifetimeOrderReward = useMemo(() => {\n if (namespace === ChainNamespace.evm) {\n return data?.wallet_lifetime_trading_rewards_order;\n }\n return data?.wallet_pending_trading_rewards_order;\n }, [namespace, data]);\n\n const lifetimeEsOrderReward = useMemo(() => {\n if (namespace === ChainNamespace.evm) {\n return data?.wallet_lifetime_trading_rewards_escrow;\n }\n return data?.wallet_pending_trading_rewards_escrow;\n }, [data, namespace]);\n\n const env = useGetEnv();\n const goToClaim = (e: any) => {\n const url = `https://${\n env !== ENVType.prod ? `${env}-` : \"\"\n }app.orderly.network/tradingRewards`;\n window.open(url, \"_blank\");\n };\n\n const calculateRemainingReward = useCallback(\n (totalReward: string | undefined, claimedReward: number | undefined) => {\n if (\n typeof claimedReward !== \"undefined\" &&\n typeof totalReward !== \"undefined\"\n ) {\n const remainingReward = new Decimal(totalReward)\n .sub(claimedReward)\n .toFixed(18, Decimal.ROUND_DOWN);\n return Number(remainingReward);\n }\n return undefined;\n },\n []\n );\n\n const availableOrder = useMemo(\n () => calculateRemainingReward(lifetimeOrderReward, orderClaimedRewardData),\n [lifetimeOrderReward, orderClaimedRewardData, calculateRemainingReward]\n );\n\n const availableEsOrder = useMemo(\n () =>\n calculateRemainingReward(lifetimeEsOrderReward, esOrderClaimedRewardData),\n [lifetimeEsOrderReward, esOrderClaimedRewardData, calculateRemainingReward]\n );\n\n const orderValue = useDataTap<number | undefined>(availableOrder);\n const esorderValue = useDataTap<number | undefined>(availableEsOrder);\n return {\n order: orderValue ?? undefined,\n esOrder: esorderValue ?? undefined,\n goToClaim,\n };\n};\n","import { Flex, Text } from \"@orderly.network/ui\";\nimport { JumpIcon } from \"../components/jumpIcon\";\nimport { FC } from \"react\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { AvailableReturns } from \"./availableToClaim.script\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const AvailableToClaim: FC<AvailableReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-availableToClaim\"\n p={6}\n r=\"2xl\"\n direction={\"column\"}\n gap={4}\n width={\"100%\"}\n className=\" oui-font-semibold oui-bg-base-9 \"\n >\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">\n {t(\"tradingRewards.availableClaim\")}\n </Text>\n <Flex\n direction={\"row\"}\n gap={1}\n onClick={props.goToClaim}\n className=\"oui-cursor-pointer oui-text-primary-light\"\n >\n <Text size=\"sm\">{t(\"tradingRewards.claim\")}</Text>\n <JumpIcon />\n </Flex>\n </Flex>\n <Flex direction={\"row\"} gap={3} width={\"100%\"}>\n <Statics title=\"ORDER\" value={props.order} />\n <Statics title=\"esORDER\" value={props.esOrder} isEsOrder />\n </Flex>\n </Flex>\n );\n};\n// background: linear-gradient(28.29deg, #1B1D22 21.6%, #26292E 83.23%);\n\nconst Statics: FC<{\n title: string;\n isEsOrder?: boolean;\n value?: number;\n}> = (props) => {\n const { value } = props;\n return (\n <Flex\n className=\"oui-flex-1 oui-bg-base-8 oui-py-[11px]\"\n direction={\"column\"}\n gap={2}\n r=\"xl\"\n gradient=\"neutral\"\n angle={180}\n border\n borderColor={6}\n >\n <Text className=\"oui-text-xs xl:oui-text-sm oui-text-base-contrast-54\">\n {props.title}\n </Text>\n <Flex direction={\"row\"} gap={1}>\n {props.isEsOrder ? <EsOrderlyIcon /> : <OrderlyIcon />}\n <Text\n className=\"oui-text-sm xl:oui-text-base\"\n children={commifyOptional(value, { fix: 2 })}\n />\n </Flex>\n </Flex>\n );\n};\n","export const JumpIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n // fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n >\n <path\n d=\"M11.3275 13.9938C12.8001 13.9938 13.9941 12.7998 13.9941 11.3272V4.66049C13.9941 3.18782 12.8001 1.99382 11.3275 1.99382H4.66081C3.18814 1.99382 1.99414 3.18782 1.99414 4.66049V11.3272C1.99414 12.7998 3.18814 13.9938 4.66081 13.9938H11.3275ZM5.99414 10.6605C5.82347 10.6605 5.64548 10.6031 5.51481 10.4732C5.25481 10.2125 5.25481 9.77516 5.51481 9.51449L8.18148 6.84782L6.66081 5.32715H10.6608V9.32715L9.14014 7.80648L6.47347 10.4732C6.34347 10.6031 6.16481 10.6605 5.99414 10.6605Z\"\n \n />\n </svg>\n );\n};\n","import { useAvailableScript } from \"./availableToClaim.script\";\nimport { AvailableToClaim } from \"./availableToClaim.ui\";\n\nexport const AvailableToClaimWidget = () => {\n const state = useAvailableScript();\n return <AvailableToClaim {...state}/>\n};","import { CurrentEpochEstimate } from \"@orderly.network/hooks\";\nimport { useTradingRewardsContext } from \"../provider\";\nimport { ENVType, useGetEnv } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMemo } from \"react\";\n\nexport const useStakeBoosterScript = () => {\n const { curEpochEstimate } = useTradingRewardsContext();\n\n const env = useGetEnv();\n const stakeNow = (e: any) => {\n const url = `https://${\n env !== ENVType.prod ? `${env}-` : \"\"\n }app.orderly.network/staking`;\n window.open(url, \"_blank\");\n };\n const estimateValue = useDataTap(curEpochEstimate);\n\n const booster = useMemo(() => {\n const estStakeBoost = curEpochEstimate?.est_stake_boost;\n if (typeof estStakeBoost === \"undefined\" || estStakeBoost === null) {\n return undefined;\n }\n\n if (estStakeBoost === 0) return estStakeBoost;\n\n return new Decimal(estStakeBoost)\n .div(new Decimal(10).pow(0.15))\n .toDecimalPlaces(2, Decimal.ROUND_DOWN)\n .toString();\n }, [curEpochEstimate?.est_stake_boost]);\n return {\n curEpochEstimate: estimateValue ?? undefined,\n stakeNow,\n booster,\n };\n};\n\n\nexport type StakeBoosterReturns = ReturnType<typeof useStakeBoosterScript>;","import { FC, ReactNode } from \"react\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { JumpIcon } from \"../components/jumpIcon\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { RocketIcon } from \"../components/rocket\";\nimport { StakeBoosterReturns } from \"./stakeBooster.script\";\nimport { commify, commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const StakeBooster: FC<StakeBoosterReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-stakeBooster\"\n p={6}\n r=\"2xl\"\n direction={\"column\"}\n gap={4}\n width={\"100%\"}\n className=\" oui-font-semibold oui-bg-base-9 \"\n >\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"tradingRewards.stakeBooster\")}</Text>\n <Flex\n direction={\"row\"}\n gap={1}\n onClick={props.stakeNow}\n className=\"oui-cursor-pointer oui-text-primary-light\"\n >\n <Text size=\"sm\">{t(\"tradingRewards.stake\")}</Text>\n <JumpIcon />\n </Flex>\n </Flex>\n <Flex direction={\"row\"} gap={3} width={\"100%\"}>\n <Statics\n title={t(\"tradingRewards.avgStakedAmount\")}\n value={props.curEpochEstimate?.est_avg_stake}\n icon={\n <div className=\"oui-flex oui-w-[32px] oui-h-[20px] oui-relative\">\n <div className=\"oui-absolute oui-right-0 oui-top-0\">\n <EsOrderlyIcon />\n </div>\n <div className=\"oui-absolute oui-left-0 oui-top-0 \">\n <OrderlyIcon />\n </div>\n </div>\n }\n />\n <Statics\n title={t(\"tradingRewards.booster\")}\n value={props.booster}\n icon={<RocketIcon />}\n gradient\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Statics: FC<{\n title: string;\n icon: ReactNode;\n value?: number | string;\n gradient?: boolean;\n}> = (props) => {\n const calcValue = commify(props.value || \"--\", 2);\n return (\n <Flex\n className=\"oui-flex-1 oui-bg-base-8 oui-py-[11px]\"\n direction={\"column\"}\n gap={2}\n r=\"xl\"\n gradient=\"neutral\"\n angle={180}\n border\n borderColor={6}\n >\n <Text className=\"oui-text-xs xl:oui-text-sm oui-text-base-contrast-54\">\n {props.title}\n </Text>\n <Flex direction={\"row\"} gap={1}>\n {props.icon}\n {props.gradient ? (\n <Text.gradient\n className=\"oui-text-sm xl:oui-text-base\"\n color=\"brand\"\n angle={90}\n >\n {calcValue + (calcValue === \"--\" ? \"\" : \"x\")}\n </Text.gradient>\n ) : (\n <Text className=\"oui-text-sm xl:oui-text-base\">\n {commifyOptional(props.value, { fix: 2 })}\n </Text>\n )}\n </Flex>\n </Flex>\n );\n};\n","export const RocketIcon = () => {\n return (\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=\"M14.439 10.5672C14.0868 10.9198 13.7025 11.2403 13.3183 11.5287C13.1902 11.6248 13.1261 11.721 13.0941 11.8812C12.7739 13.1952 12.1015 14.4451 11.0448 15.5027C10.5645 15.9835 10.0522 16.3681 9.47584 16.7206C8.99553 17.009 8.41917 16.5283 8.61129 15.9835C8.93149 15.1502 9.05957 14.2528 9.05957 13.3234C8.99553 13.3234 8.89947 13.3555 8.83543 13.3555C8.06695 12.7145 7.3625 12.0415 6.65805 11.3364C5.95361 10.6313 5.28118 9.89421 4.64078 9.15708C4.64078 9.09299 4.6728 8.99684 4.6728 8.93274C3.74421 8.93274 2.84764 9.09299 2.01512 9.38143C1.50279 9.57372 0.990469 8.99684 1.27865 8.51611C1.63087 7.93923 2.01512 7.42645 2.49542 6.94572C3.55209 5.88811 4.80088 5.21508 6.11371 4.89459C6.24179 4.86255 6.36987 4.7664 6.46593 4.67025C6.75412 4.25362 7.07432 3.90108 7.42654 3.54855C9.92412 1.04874 13.4143 0.183422 16.6484 0.920545C16.8725 0.984642 17.0326 1.14489 17.0967 1.36923C17.8011 4.57411 16.9366 8.06742 14.439 10.5672ZM13.0301 4.95869C12.2616 4.18952 10.9808 4.18952 10.2123 4.95869C9.44382 5.72786 9.44382 7.00982 10.2123 7.77899C10.9808 8.54816 12.2616 8.54816 13.0301 7.77899C13.8306 6.97777 13.8306 5.72786 13.0301 4.95869ZM5.88957 14.7656C5.28118 15.3745 1.53481 17.9385 0.798348 17.2013C0.0618817 16.4642 2.6235 12.7145 3.23189 12.1056C3.84027 11.4966 4.92896 11.5928 5.66543 12.3299C6.40189 13.067 6.49795 14.1567 5.88957 14.7656Z\"\n fill=\"url(#paint0_linear_88_1748)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_88_1748\"\n x1=\"17.3331\"\n y1=\"8.99996\"\n x2=\"0.666504\"\n y2=\"8.99996\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n","import { useStakeBoosterScript } from \"./stakeBooster.script\";\nimport { StakeBooster } from \"./stakeBooster.ui\";\n\nexport const StakeBoosterWidget = () => {\n const state = useStakeBoosterScript();\n return <StakeBooster {...state} />\n};","import { FC } from \"react\";\nimport {\n Box,\n Divider,\n Flex,\n ListView,\n Text,\n DataTable,\n Column,\n} from \"@orderly.network/ui\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { ListType, RewardsHistoryReturns } from \"./rewardsHistory.script\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { AuthGuardEmpty } from \"@orderly.network/ui-connector\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { RewardsTooltip } from \"../curEpoch/rewardsTooltip\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const RewardHistory: FC<RewardsHistoryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-rewardHistory\"\n py={4}\n px={3}\n direction={\"column\"}\n gap={2}\n itemAlign={\"start\"}\n r=\"2xl\"\n className=\"oui-bg-base-9 oui-w-full oui-font-semibold oui-tabular-nums\"\n >\n <Text className=\"oui-text-lg oui-px-3\">\n {t(\"tradingRewards.rewardHistory\")}\n </Text>\n <div className=\"oui-border-t-2 oui-border-line-4 oui-w-full\">\n <List {...props} />\n </div>\n </Flex>\n );\n};\n\nconst List: FC<RewardsHistoryReturns> = (props) => {\n const isMobile = useMediaQuery(\"(max-width: 767px)\");\n\n return isMobile ? (\n <ListView\n dataSource={props.originalData}\n renderItem={(item, index) => {\n return <MobileCell data={item} />;\n }}\n className=\"oui-mt-3 oui-max-h-[356px]\"\n />\n ) : (\n <Box px={3}>\n <DesktopList {...props} />\n </Box>\n );\n};\n\nconst MobileCell: FC<{\n data: ListType;\n}> = (props) => {\n const { data } = props;\n const { t } = useTranslation();\n\n console.log(data.rewardsTooltip);\n const isOrder =\n `${data?.info?.epoch_token || data.epoch_token}`.toLowerCase() === \"order\";\n const r_warret = commifyOptional(data.info?.r_wallet, { fix: 2 });\n\n return (\n <Flex\n key={data.epoch_id}\n direction={\"column\"}\n px={4}\n pt={0}\n gap={3}\n className=\"oui-text-base-contrast-80\"\n >\n <Flex direction={\"row\"} width={\"100%\"}>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"start\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.epoch\")}\n </Text>\n <Text className=\"oui-text-sm\">{`Epoch ${data.epoch_id}`}</Text>\n </Flex>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"start\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.epochRewards\")}{\" \"}\n </Text>\n <Flex gap={1}>\n {isOrder ? <OrderlyIcon /> : <EsOrderlyIcon />}\n <Text className=\"oui-text-sm\">\n {commifyOptional(data.max_reward_amount, { fix: 2 })}\n </Text>\n </Flex>\n </Flex>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"end\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.rewardsEarned\")}{\" \"}\n </Text>\n <Flex gap={1}>\n {r_warret !== \"--\" &&\n (isOrder ? <OrderlyIcon /> : <EsOrderlyIcon />)}\n {!!data.rewardsTooltip ? (\n <RewardsTooltip\n rewardsTooltip={data.rewardsTooltip}\n children={\n <Text className=\"oui-text-sm oui-underline oui-decoration-dashed oui-cursor-pointer oui-underline-offset-4 oui-decoration-line-16\">\n {r_warret}\n </Text>\n }\n align=\"center\"\n className=\"oui-bg-base-5\"\n arrowClassName=\"oui-fill-base-5\"\n />\n ) : (\n <Text className=\"oui-text-sm\">{r_warret}</Text>\n )}\n </Flex>\n </Flex>\n </Flex>\n <Flex direction={\"row\"} width={\"100%\"}>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"start\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.rewardHistory.column.startDate\")}\n </Text>\n <Flex direction={\"row\"}>\n <Text className=\"oui-text-sm\">\n {formatTimestamp(data.start_time).firstPart}&nbsp;\n </Text>\n <Text className=\"oui-text-2xs oui-text-base-contrast-36\">\n {formatTimestamp(data.start_time).secondPart}\n </Text>\n </Flex>\n </Flex>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"end\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.rewardHistory.column.endDate\")}\n </Text>\n <Flex direction={\"row\"}>\n <Text className=\"oui-text-sm\">\n {formatTimestamp(data.end_time).firstPart}&nbsp;\n </Text>\n <Text className=\"oui-text-2xs oui-text-base-contrast-36\">\n {formatTimestamp(data.end_time).secondPart}\n </Text>\n </Flex>\n </Flex>\n </Flex>\n <Divider className=\"oui-w-full\" />\n </Flex>\n );\n};\n\nconst DesktopList: FC<RewardsHistoryReturns> = (props) => {\n const { data } = props;\n const { t } = useTranslation();\n\n const columns: Column<ListType>[] = [\n {\n title: t(\"tradingRewards.epoch\"),\n dataIndex: \"epoch_id\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value) => {\n return <Text>{`${t(\"tradingRewards.epoch\")} ${value}`}</Text>;\n },\n },\n {\n title: t(\"tradingRewards.rewardHistory.column.start&EndDate\"),\n dataIndex: \"time\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value, record) => {\n return (\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[2px]\"\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <Flex direction={\"row\"} gap={1}>\n <Text>{formatTimestamp(record.start_time).firstPart}</Text>\n <Text className=\"oui-text-base-contrast-54\">\n {formatTimestamp(record.start_time).secondPart}\n </Text>\n </Flex>\n <Flex direction={\"row\"} gap={1}>\n <Text>{formatTimestamp(record.end_time).firstPart}</Text>\n <Text className=\"oui-text-base-contrast-54\">\n {formatTimestamp(record.end_time).secondPart}\n </Text>\n </Flex>\n </Flex>\n );\n },\n },\n {\n title: t(\"tradingRewards.epochRewards\"),\n dataIndex: \"max_reward_amount\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value, record) => {\n const isOrder =\n `${record?.info?.epoch_token || record.epoch_token}`.toLowerCase() ===\n \"order\";\n return (\n <Flex direction={\"row\"} gap={1}>\n {isOrder ? <OrderlyIcon /> : <EsOrderlyIcon />}\n <Text>{commifyOptional(value)}</Text>\n </Flex>\n );\n },\n },\n {\n title: t(\"tradingRewards.rewardsEarned\"),\n dataIndex: \"earned\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value, record) => {\n const isOrder =\n `${record?.info?.epoch_token || record.epoch_token}`.toLowerCase() ===\n \"order\";\n\n let children = (\n <Text\n className={\n record.rewardsTooltip\n ? \"oui-underline oui-decoration-dashed oui-cursor-pointer oui-underline-offset-4 oui-decoration-line-16\"\n : \"\"\n }\n >\n {commifyOptional(record.info?.r_wallet, { fix: 2 })}\n </Text>\n );\n\n if (record.rewardsTooltip) {\n children = (\n <RewardsTooltip\n rewardsTooltip={record.rewardsTooltip}\n children={children}\n align=\"center\"\n className=\"oui-bg-base-5\"\n arrowClassName=\"oui-fill-base-5\"\n />\n );\n }\n return (\n <Flex direction={\"row\"} gap={1}>\n {isOrder ? <OrderlyIcon /> : <EsOrderlyIcon />}\n {children}\n </Flex>\n );\n },\n },\n ];\n\n return (\n <DataTable\n bordered\n columns={columns}\n loading={props.isLoading}\n dataSource={data}\n emptyView={<AuthGuardEmpty status={AccountStatusEnum.SignedIn} />}\n onRow={(record) => {\n return {\n className: \"oui-h-[59px]\",\n };\n }}\n pagination={props.pagination}\n />\n );\n};\n\nfunction formatTimestamp(timestamp?: number) {\n if (typeof timestamp === \"undefined\")\n return {\n firstPart: \"-\",\n secondPart: \"\",\n };\n const date = new Date(timestamp);\n\n const monthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ];\n const month = monthNames[date.getUTCMonth()];\n const day = date.getUTCDate().toString().padStart(2, \"0\");\n const year = date.getUTCFullYear();\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const amPm = hours >= 12 ? \"PM\" : \"AM\";\n const formattedHours = (hours % 12).toString().padStart(2, \"0\");\n const formattedMinutes = minutes.toString().padStart(2, \"0\");\n\n // return `${month} ${day}, ${year}_${formattedHours}:${formattedMinutes} ${amPm}`;\n return {\n firstPart: `${month} ${day}, ${year}`,\n secondPart: `${formattedHours}:${formattedMinutes} ${amPm}`,\n };\n}\n","import { useMemo } from \"react\";\nimport {\n EpochInfoItem,\n useAccount,\n useAccountRewardsHistory,\n WalletRewardsItem,\n} from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { getTimestamp } from \"@orderly.network/utils\";\nimport { RewardsTooltipProps } from \"../curEpoch/rewardsTooltip\";\nimport { useTradingRewardsContext } from \"../provider\";\n\nexport type ListType = EpochInfoItem & {\n info?: WalletRewardsItem;\n state?: string;\n rewardsTooltip?: RewardsTooltipProps;\n};\n\nexport type RewardsHistoryReturns = ReturnType<typeof useRewardsHistoryScript>;\n\nexport const useRewardsHistoryScript = () => {\n const { account } = useAccount();\n const {\n epochList,\n walletRewardsHistory,\n totalOrderClaimedReward,\n brokerId,\n brokerName,\n } = useTradingRewardsContext();\n const epochInfos = epochList?.[0];\n const { isNotStared } = epochList?.[1];\n const [history] = walletRewardsHistory;\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const { data: accountHistory } = useAccountRewardsHistory(account.address);\n\n const data = useMemo(() => {\n if (isNotStared || disabledConnect) {\n return [];\n }\n const list = [...(epochInfos || [])];\n\n const combineData = list.map((e): ListType => {\n const id = e.epoch_id;\n const index = history?.rows.findIndex((info) => id === info.epoch_id);\n\n let rewardsTooltip: RewardsTooltipProps | undefined = undefined;\n\n if (index !== -1 && !wrongNetwork) {\n const info = history?.rows?.[index as number];\n const _findIndex = accountHistory?.findIndex((item: any) => {\n return item?.epoch_id === e.epoch_id;\n });\n\n if (\n accountHistory !== undefined &&\n _findIndex !== undefined &&\n _findIndex !== -1\n ) {\n // get broker\n const brokerList = accountHistory[_findIndex].broker;\n const curBrokerIndex = brokerList.findIndex(\n (item) => item.broker_id === brokerId,\n );\n const curBroker =\n curBrokerIndex !== -1 ? brokerList[curBrokerIndex] : undefined;\n const curRewards = curBroker?.r_account ?? 0;\n const otherRewards = Math.max(0, (info?.r_wallet ?? 0) - curRewards);\n rewardsTooltip = {\n brokerName,\n curRewards,\n otherRewards,\n };\n }\n return {\n ...e,\n info,\n rewardsTooltip,\n } as ListType;\n }\n return {\n ...e,\n } as ListType;\n });\n\n combineData.sort((a, b) => a.epoch_id - b.epoch_id); // asc\n let [claimedReward] = totalOrderClaimedReward;\n if (typeof claimedReward !== \"undefined\") {\n for (let i = 0; i < combineData.length; i++) {\n const element = combineData[i];\n if (typeof element?.info === \"undefined\") {\n element.state = \"Null\";\n continue;\n }\n const status = element.info?.reward_status;\n if (status === \"Confirmed\") {\n if (claimedReward - element.info?.r_wallet >= 0) {\n element.state = \"Claimed\";\n } else {\n element.state = \"Claimable\";\n }\n claimedReward -= element.info?.r_wallet;\n } else if (status === \"Pending\") {\n element.state = \"Processing\";\n }\n }\n }\n combineData.sort((a, b) => b.epoch_id - a.epoch_id);\n const curDate = getTimestamp();\n return combineData.filter((item) => item.end_time <= curDate);\n }, [\n history,\n epochInfos,\n totalOrderClaimedReward,\n isNotStared,\n wrongNetwork,\n accountHistory,\n disabledConnect,\n ]);\n\n const { pagination } = usePagination();\n\n return {\n data,\n originalData: data,\n pagination,\n isLoading: epochList[1].isLoading,\n };\n};\n","import { useRewardsHistoryScript } from \"./rewardsHistory.script\";\nimport { RewardHistory } from \"./rewardsHistory.ui\";\n\nexport const RewardsHistoryWidget = () => {\n const state = useRewardsHistoryScript();\n return <RewardHistory {...state} />;\n};\n","import { FC, useMemo } from \"react\";\nimport { useTradingRewardsStatus, EpochStatus } from \"@orderly.network/hooks\";\nimport { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { AvailableToClaimWidget } from \"./availableToClaim\";\nimport { CurEpochWidget } from \"./curEpoch\";\nimport { TradingRewardsProvider } from \"./provider\";\nimport { RewardsHistoryWidget } from \"./rewardHistory\";\nimport { StakeBoosterWidget } from \"./stakeBooster\";\nimport { TitleConfig } from \"./title/title.script\";\nimport { TitleWidget } from \"./title/title.widget\";\n\nexport const HomePage: FC<{\n titleConfig?: TitleConfig;\n className?: string;\n showEpochPauseCountdown?: boolean;\n}> = (props) => {\n return (\n <TradingRewardsProvider\n titleConfig={props.titleConfig}\n showEpochPauseCountdown={props.showEpochPauseCountdown}\n >\n <Flex\n id=\"oui-tradingRewards-home-page\"\n className={cn(\"oui-h-lvw oui-w-full\", props.className)}\n direction={\"column\"}\n gap={4}\n >\n <TitleWidget />\n <Flex className=\"oui-flex oui-size-full oui-flex-col oui-gap-4 2xl:oui-flex-row 2xl:oui-items-stretch\">\n <Box className=\"oui-w-full 2xl:oui-size-auto 2xl:oui-flex-1\">\n <CurEpochWidget />\n </Box>\n <Flex className=\"oui-flex oui-w-full oui-flex-col oui-gap-4 lg:oui-flex-row 2xl:oui-flex-1 2xl:oui-flex-col\">\n <AvailableToClaimWidget />\n <StakeBooster />\n </Flex>\n </Flex>\n <RewardsHistoryWidget />\n </Flex>\n </TradingRewardsProvider>\n );\n};\n\nconst StakeBooster = () => {\n const { statusInfo } = useTradingRewardsStatus(false);\n const isStakeBoosterVisible = useMemo(() => {\n return statusInfo?.epochStatus === EpochStatus.active;\n }, [statusInfo]);\n return isStakeBoosterVisible ? <StakeBoosterWidget /> : null;\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\nimport type { SideBarProps } from \"@orderly.network/ui-scaffold\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport enum TradingRewardsLeftSidebarPath {\n Trading = \"/rewards/trading\",\n Affiliate = \"/rewards/affiliate\",\n}\n\nexport const useTradingRewardsLayoutScript = (props: {\n current?: string;\n}): SideBarProps & {\n hideSideBar: boolean;\n} => {\n const { t } = useTranslation();\n const [current, setCurrent] = useState(props.current || \"/rewards/affiliate\");\n\n useEffect(() => {\n if (props.current) setCurrent(props.current);\n }, [props.current]);\n\n const items = useMemo(() => {\n return [\n {\n name: t(\"common.trading\"),\n href: TradingRewardsLeftSidebarPath.Trading,\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 className=\"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]\"\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: TradingRewardsLeftSidebarPath.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 className=\"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]\"\n />\n </svg>\n ),\n },\n ];\n }, [t]);\n\n const hideSideBar = useMediaQuery(\"(max-width: 768px)\");\n\n return {\n items,\n current,\n hideSideBar,\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 React, { PropsWithChildren } from \"react\";\nimport omit from \"ramda/es/omit\";\nimport { cn } from \"@orderly.network/ui\";\nimport { Scaffold, SideBarProps } from \"@orderly.network/ui-scaffold\";\nimport { ScaffoldProps } from \"@orderly.network/ui-scaffold\";\n\nexport type TradingRewardsLayoutProps = ScaffoldProps & {\n hideSideBar?: boolean;\n items?: SideBarProps[\"items\"];\n};\n\nexport const TradingRewardsLayout: React.FC<\n PropsWithChildren<TradingRewardsLayoutProps>\n> = (props) => {\n const { children, classNames, ...rest } = props;\n return (\n <Scaffold\n leftSidebar={null}\n routerAdapter={props.routerAdapter}\n classNames={{\n ...classNames,\n content: classNames?.content,\n topNavbar: cn(\"oui-bg-base-9\", classNames?.topNavbar),\n leftSidebar: cn(\n \"oui-rounded-xl oui-bg-base-9\",\n \"oui-m-3 oui-p-4\",\n \"oui-border oui-border-line\",\n classNames?.leftSidebar,\n ),\n }}\n {...omit([\"leftSideProps\"], rest)}\n >\n {children}\n </Scaffold>\n );\n};\n\n// type LeftSidebarProps = SideBarProps & {\n// routerAdapter?: RouterAdapter;\n// };\n\n// const LeftSidebar: React.FC<LeftSidebarProps> = (props) => {\n// const { t } = useTranslation();\n// const { expanded, setExpand } = useScaffoldContext();\n// return (\n// <SideBar\n// title={t(\"tradingRewards.rewards\")}\n// {...props}\n// open={expanded}\n// onOpenChange={(open) => setExpand(open)}\n// onItemSelect={(a) => {\n// props.onItemSelect?.(a);\n// props.routerAdapter?.onRouteChange?.({\n// href: a.href || \"\",\n// name: a.name,\n// });\n// }}\n// />\n// );\n// };\n","import { FC, PropsWithChildren } from \"react\";\nimport { ScaffoldProps } from \"@orderly.network/ui-scaffold\";\nimport { useTradingRewardsLayoutScript } from \"./layout.script\";\nimport { TradingRewardsLayout } from \"./layout.ui\";\n\nexport const TradingRewardsLayoutWidget: FC<\n PropsWithChildren<ScaffoldProps>\n> = (props) => {\n const state = useTradingRewardsLayoutScript({\n current: props.leftSideProps?.current,\n });\n return (\n <TradingRewardsLayout {...state} {...props}>\n {props.children}\n </TradingRewardsLayout>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/pages/index/title/title.ui.tsx","../src/pages/index/provider.tsx","../src/pages/index/title/title.script.tsx","../src/pages/index/title/title.widget.tsx","../src/pages/index/curEpoch/curEpoch.script.tsx","../src/pages/index/components/esOrderlyIcon.tsx","../src/pages/index/components/orderlyIcon.tsx","../src/pages/index/curEpoch/rewardsTooltip.tsx","../src/pages/index/curEpoch/curEpoch.ui.tsx","../src/pages/index/curEpoch/curEpoch.widget.tsx","../src/pages/index/curEpoch/index.ts","../src/pages/index/availableToClaim/availableToClaim.script.tsx","../src/pages/index/components/jumpIcon.tsx","../src/pages/index/availableToClaim/availableToClaim.ui.tsx","../src/pages/index/availableToClaim/availableToClaim.widget.tsx","../src/pages/index/availableToClaim/index.ts","../src/pages/index/stakeBooster/stakeBooster.script.tsx","../src/pages/index/components/rocket.tsx","../src/pages/index/stakeBooster/stakeBooster.ui.tsx","../src/pages/index/stakeBooster/stakeBooster.widget.tsx","../src/pages/index/stakeBooster/index.ts","../src/pages/index/rewardHistory/rewardsHistory.ui.tsx","../src/pages/index/rewardHistory/rewardsHistory.script.tsx","../src/pages/index/rewardHistory/rewardsHistory.widget.tsx","../src/pages/index/rewardHistory/index.ts","../src/pages/index/index.tsx","../src/pages/index/title/index.ts","../src/pages/index/page.tsx","../src/layout/layout.script.tsx","../src/layout/layout.ui.tsx","../src/layout/layout.widget.tsx"],"names":["Divider","Flex","Text","useTranslation","jsx","jsxs","Title","MultiLineText","init_title_ui","__esmMin","props","title","subtitle","content","docOpenOptions","t","createContext","useContext","useMemo","TWType","useEpochInfo","useAllBrokers","useGetClaimed","DistributionId","useCurEpochEstimate","useWalletRewardsHistory","useConfig","useTradingRewardsStatus","TradingRewardsContext","TradingRewardsProvider","useTradingRewardsContext","init_provider","type","showEpochPauseCountdown","titleConfig","children","brokerId","statusInfo","totalOrderClaimedReward","totalEsOrderClaimedReward","brokers","curEpochEstimate","walletRewardsHistory","epochList","brokerName","memoizedValue","useTitleScript","init_title_script","title_widget_exports","__export","TitleWidget","init_title_widget","state","useAccount","useWalletConnector","useAppContext","AccountStatusEnum","useCurEpochScript","init_curEpoch_script","estimate","wrongNetwork","disabledConnect","connect","hideData","notConnected","rewardsTooltip","otherRewards","item","a","b","curRewards","EsOrderlyIcon","init_esOrderlyIcon","OrderlyIcon","init_orderlyIcon","React","useState","Tooltip","commifyOptional","RewardsTooltip","init_rewardsTooltip","open","setOpen","e","useEffect","EpochStatus","Box","cn","AuthGuard","Fragment","CurEpoch","EstRewards","Statics","Countdown","getDate","ArrowRightIcon","TwitterLInk","init_curEpoch_ui","curEpochInfo","startTime","endTime","curEpochId","max_reward_amount","token","isOrder","pausedEpochTimeDown","lastCompletedEpoch","nextEpoch","showPauseCountdown","highLight","text","targetTimestamp","isStandalone","timeLeft","setTimeLeft","intervalId","now","distance","days","hours","minutes","seconds","num","value","timestamp","date","month","day","CurEpochWidget","init_curEpoch_widget","curEpoch_exports","init_curEpoch","useCallback","useDataTap","Decimal","ChainNamespace","ENVType","useGetEnv","useAvailableScript","init_availableToClaim_script","orderClaimedRewardData","esOrderClaimedRewardData","namespace","data","lifetimeOrderReward","lifetimeEsOrderReward","env","goToClaim","url","calculateRemainingReward","totalReward","claimedReward","remainingReward","availableOrder","availableEsOrder","orderValue","esorderValue","JumpIcon","init_jumpIcon","AvailableToClaim","init_availableToClaim_ui","AvailableToClaimWidget","init_availableToClaim_widget","availableToClaim_exports","init_availableToClaim","useStakeBoosterScript","init_stakeBooster_script","stakeNow","estimateValue","booster","estStakeBoost","RocketIcon","init_rocket","commify","StakeBooster","init_stakeBooster_ui","calcValue","StakeBoosterWidget","init_stakeBooster_widget","stakeBooster_exports","init_stakeBooster","ListView","DataTable","useMediaQuery","AuthGuardEmpty","formatTimestamp","year","amPm","formattedHours","formattedMinutes","RewardHistory","List","MobileCell","DesktopList","init_rewardsHistory_ui","index","r_warret","columns","record","useAccountRewardsHistory","usePagination","getTimestamp","useRewardsHistoryScript","init_rewardsHistory_script","account","epochInfos","isNotStared","history","accountHistory","combineData","id","info","_findIndex","brokerList","curBrokerIndex","i","element","status","curDate","pagination","RewardsHistoryWidget","init_rewardsHistory_widget","rewardHistory_exports","init_rewardHistory","index_exports","HomePage","LazyTitleWidget","mod","LazyCurEpochWidget","LazyAvailableToClaimWidget","LazyStakeBoosterWidget","LazyRewardsHistoryWidget","TradingRewardsLeftSidebarPath","useTradingRewardsLayoutScript","current","setCurrent","items","hideSideBar","omit","Scaffold","TradingRewardsLayout","classNames","rest","TradingRewardsLayoutWidget"],"mappings":"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","sourcesContent":["import { Divider, Flex, Text } from \"@orderly.network/ui\";\nimport { FC } from \"react\";\nimport { TitleConfig } from \"./title.script\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Title: FC<TitleConfig> = (props) => {\n const { title, subtitle, content, docOpenOptions } = props;\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-title\"\n p={6}\n direction={\"column\"}\n itemAlign={\"start\"}\n gap={4}\n className=\"oui-bg-base-9 oui-font-semibold\"\n r={\"2xl\"}\n width={\"100%\"}\n >\n {title || <Text size=\"lg\">{t(\"common.tradingRewards\")}</Text>}\n <Divider intensity={8} className=\"oui-w-full\" />\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={1}>\n {subtitle || (\n <Text size=\"base\">\n {t(\"tradingRewards.subtitle\", {\n brokerName: props.brokerName,\n })}\n </Text>\n )}\n\n {content || <MultiLineText docOpenOptions={docOpenOptions} />}\n </Flex>\n </Flex>\n );\n};\n\nconst MultiLineText: FC<{\n docOpenOptions?: {\n url?: string;\n target?: string;\n features?: string;\n };\n}> = (props) => {\n const { t } = useTranslation();\n\n // const clickableParts = [\n // {\n // content: \"Learn more here\",\n // isLink: true,\n // },\n // // {\n // // content: \"about Orderly Trading rewards Program.\",\n // // isLink: false,\n // // },\n // // {\n // // content: \"Trading rewards Docs\",\n // // isLink: true,\n // // },\n // ];\n // const renderText = () => {\n // return clickableParts.map((item, index) => {\n // return (\n // <span\n // key={index}\n // className={`${\n // item.isLink\n // ? \"oui-text-primary-light hover:oui-text-primary-darken oui-cursor-pointer\"\n // : \"\"\n // }`}\n // dangerouslySetInnerHTML={{ __html: item.content }}\n // />\n // );\n // });\n // };\n\n return (\n <div\n className=\"oui-text-sm oui-text-base-contrast-54 oui-font-normal oui-flex oui-gap-1 oui-items-center hover:oui-text-primary-darken oui-text-primary-light oui-cursor-pointer\"\n onClick={() => [\n window.open(\n props.docOpenOptions?.url,\n props.docOpenOptions?.target,\n props.docOpenOptions?.features\n ),\n ]}\n >\n <span className=\"oui-text-primary-light hover:oui-text-primary-darken oui-cursor-pointer\">\n {t(\"tradingRewards.learnMore\")}\n </span>\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 </div>\n );\n};\n\nexport default MultiLineText;\n","import React, {\n PropsWithChildren,\n createContext,\n useContext,\n useMemo,\n} from \"react\";\nimport {\n TWType,\n EpochInfoType,\n useEpochInfo,\n useAllBrokers,\n useGetClaimed,\n DistributionId,\n useCurEpochEstimate,\n CurrentEpochEstimate,\n useWalletRewardsHistory,\n WalletRewardsHistoryReturns,\n Brokers,\n useConfig,\n useTradingRewardsStatus,\n StatusInfo,\n} from \"@orderly.network/hooks\";\nimport type { TitleConfig } from \"./title/title.script\";\n\nexport type TradingRewardsState = {\n type: TWType;\n brokerId: string;\n brokerName?: string;\n brokers?: Brokers;\n epochList: EpochInfoType;\n totalOrderClaimedReward: [number | undefined, { refresh: () => void }];\n totalEsOrderClaimedReward: [number | undefined, { refresh: () => void }];\n curEpochEstimate?: CurrentEpochEstimate;\n walletRewardsHistory: WalletRewardsHistoryReturns;\n titleConfig: TitleConfig;\n statusInfo: StatusInfo | undefined;\n showEpochPauseCountdown?: boolean;\n};\n\nexport const TradingRewardsContext = createContext<TradingRewardsState>(\n {} as TradingRewardsState,\n);\n\nexport const TradingRewardsProvider: React.FC<\n PropsWithChildren<{\n type?: TWType;\n titleConfig?: TitleConfig;\n showEpochPauseCountdown?: boolean;\n }>\n> = (props) => {\n const {\n type = TWType.normal,\n showEpochPauseCountdown,\n titleConfig = {\n docOpenOptions: {\n url: \"https://orderly.network/docs/introduction/tokenomics/trading-rewards\",\n target: \"_blank\",\n },\n },\n children,\n } = props;\n\n const brokerId = useConfig(\"brokerId\");\n\n const { statusInfo } = useTradingRewardsStatus(type === TWType.mm);\n const totalOrderClaimedReward = useGetClaimed(\n type === TWType.mm ? DistributionId.mmOrder : DistributionId.order,\n );\n const totalEsOrderClaimedReward = useGetClaimed(\n type === TWType.mm ? DistributionId.mmEsOrder : DistributionId.esORder,\n );\n\n const [brokers] = useAllBrokers();\n\n const [curEpochEstimate] = useCurEpochEstimate(type);\n\n const walletRewardsHistory = useWalletRewardsHistory(type);\n\n const epochList = useEpochInfo(type);\n\n const brokerName = useMemo(() => {\n return brokers?.[brokerId];\n }, [brokerId, brokers]);\n\n const memoizedValue = useMemo<TradingRewardsState>(() => {\n return {\n type: type,\n totalOrderClaimedReward,\n totalEsOrderClaimedReward,\n epochList,\n curEpochEstimate,\n walletRewardsHistory,\n titleConfig,\n brokerId,\n brokerName,\n brokers,\n statusInfo,\n showEpochPauseCountdown: showEpochPauseCountdown ?? false,\n };\n }, [\n type,\n totalOrderClaimedReward,\n totalEsOrderClaimedReward,\n epochList,\n curEpochEstimate,\n walletRewardsHistory,\n titleConfig,\n brokerId,\n brokerName,\n brokers,\n statusInfo,\n showEpochPauseCountdown,\n ]);\n\n return (\n <TradingRewardsContext.Provider value={memoizedValue}>\n {children}\n </TradingRewardsContext.Provider>\n );\n};\n\nexport const useTradingRewardsContext = () => {\n return useContext<TradingRewardsState>(TradingRewardsContext);\n};\n","import { ReactNode } from \"react\";\nimport { useTradingRewardsContext } from \"../provider\";\n\nexport type TitleConfig = {\n /// default is `Trading rewards`\n title?: string | ReactNode;\n /// default is `Trade with Orderly’s to earn ORDER.`\n subtitle?: string | ReactNode;\n /// default is `Learn more about Orderly Trading rewards Program in Trading rewards Docs`\n content?: string | ReactNode;\n /// default is { url: 'https://orderly.network/docs/introduction/tokenomics/trading-rewards', target: \"_blank\"}\n docOpenOptions?: {\n url?: string;\n target?: string;\n features?: string;\n };\n brokerName?: string;\n};\n\nexport const useTitleScript = (): TitleConfig => {\n\n const { titleConfig } = useTradingRewardsContext();\n\n return titleConfig;\n};\n","import React from \"react\";\nimport { useTitleScript } from \"./title.script\";\nimport { Title } from \"./title.ui\";\n\nexport const TitleWidget: React.FC = () => {\n const state = useTitleScript();\n return <Title {...state} />;\n};\n","import { useMemo } from \"react\";\nimport { useAccount, useWalletConnector } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useTradingRewardsContext } from \"../provider\";\nimport { RewardsTooltipProps } from \"./rewardsTooltip\";\n\nexport const useCurEpochScript = () => {\n const {\n epochList,\n curEpochEstimate: estimate,\n brokerId,\n brokerName,\n statusInfo,\n showEpochPauseCountdown,\n } = useTradingRewardsContext();\n const { wrongNetwork, disabledConnect } = useAppContext();\n const { connect } = useWalletConnector();\n const { state } = useAccount();\n\n const hideData = useMemo(() => {\n return (\n state.status <= AccountStatusEnum.SignedIn ||\n wrongNetwork ||\n disabledConnect\n );\n }, [state, wrongNetwork, disabledConnect]);\n\n const notConnected = useMemo(() => {\n return state.status <= AccountStatusEnum.SignedIn || disabledConnect;\n }, [state, disabledConnect]);\n\n const rewardsTooltip = useMemo((): RewardsTooltipProps | undefined => {\n if (typeof estimate === \"undefined\" || estimate === null) return undefined;\n const otherRewards = estimate.rows\n .filter((item) => item.broker_id !== brokerId)\n .reduce((a, b) => a + b.est_r_account, 0);\n const curRewards = Number(estimate.est_r_wallet) - otherRewards;\n return {\n brokerName,\n curRewards,\n otherRewards,\n };\n }, [brokerId, brokerName, estimate]);\n\n return {\n epochList,\n estimate,\n hideData,\n notConnected,\n connect,\n rewardsTooltip: hideData ? undefined : rewardsTooltip,\n statusInfo,\n showEpochPauseCountdown,\n };\n};\n\nexport type CurEpochReturns = ReturnType<typeof useCurEpochScript>;\n","export const EsOrderlyIcon = (props: {className?: string}) => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n >\n <g clipPath=\"url(#clip0_862_2449)\">\n <path\n d=\"M10.0249 19.9361C15.5202 19.9361 19.9751 15.4813 19.9751 9.98589C19.9751 4.49052 15.5202 0.0356445 10.0249 0.0356445C4.52949 0.0356445 0.0746155 4.49052 0.0746155 9.98589C0.0746155 15.4813 4.52949 19.9361 10.0249 19.9361Z\"\n fill=\"url(#paint0_linear_862_2449)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.0992 5.0347C14.1824 5.0347 14.2202 4.93253 14.1556 4.88017C13.0272 3.96625 11.59 3.41876 10.0249 3.41876C8.4598 3.41876 7.02258 3.96625 5.89428 4.88017C5.82963 4.93253 5.86743 5.0347 5.95063 5.0347H14.0992ZM7.2658 11.6648C7.34763 11.6648 7.42329 11.707 7.47028 11.7739C8.03421 12.5781 8.96819 13.1038 10.025 13.1038C11.0817 13.1038 12.0156 12.5781 12.5796 11.7739C12.6266 11.707 12.7022 11.6648 12.7841 11.6648H16.2198C16.2985 11.6648 16.3559 11.7395 16.334 11.8151C15.5419 14.5521 13.0171 16.5531 10.0249 16.5531C7.03275 16.5531 4.50795 14.5521 3.71578 11.8151C3.6939 11.7395 3.75127 11.6648 3.83 11.6648H7.2658ZM12.335 7.8919C12.3825 7.94426 12.4493 7.97581 12.5199 7.97581H16.114C16.1955 7.97581 16.2533 7.89653 16.2264 7.81972C15.9727 7.0936 15.5951 6.42564 15.119 5.84118C15.0743 5.78631 15.007 5.75526 14.9361 5.75526H5.11354C5.04279 5.75526 4.97543 5.78631 4.93075 5.84118C4.4546 6.42564 4.07701 7.0936 3.82337 7.81972C3.79653 7.89653 3.8543 7.97581 3.93567 7.97581H7.52983C7.60053 7.97581 7.66725 7.94426 7.71477 7.8919C8.28522 7.263 9.10892 6.86807 10.0249 6.86807C10.9408 6.86807 11.7646 7.263 12.335 7.8919ZM13.028 10.8273C13.0114 10.8862 13.0549 10.9458 13.116 10.9458H16.4447C16.4894 10.9458 16.5273 10.913 16.5333 10.8688C16.572 10.5798 16.5921 10.285 16.5921 9.98539C16.5921 9.56935 16.5534 9.1623 16.4795 8.76771C16.4716 8.72551 16.4345 8.6952 16.3916 8.6952H13.0042C12.9388 8.6952 12.895 8.763 12.9195 8.82377C13.0636 9.18276 13.1429 9.57477 13.1429 9.98529C13.1429 10.277 13.1029 10.5595 13.028 10.8273ZM6.9338 10.9458C6.99492 10.9458 7.03829 10.8862 7.02183 10.8273C6.94688 10.5595 6.90682 10.277 6.90682 9.98529C6.90682 9.57477 6.98617 9.18276 7.13037 8.82377C7.15477 8.763 7.11101 8.6952 7.04553 8.6952H3.65817C3.61522 8.6952 3.5782 8.72551 3.5703 8.76771C3.49631 9.1623 3.45761 9.56935 3.45761 9.98539C3.45761 10.285 3.47767 10.5798 3.51651 10.8688C3.52246 10.913 3.56045 10.9458 3.60511 10.9458H6.9338Z\"\n fill=\"url(#paint1_linear_862_2449)\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_862_2449\"\n x1=\"10.0249\"\n y1=\"-2.24058\"\n x2=\"10.0249\"\n y2=\"21.2774\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"#EDE9F4\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_862_2449\"\n x1=\"10.0249\"\n y1=\"3.41876\"\n x2=\"10.0249\"\n y2=\"16.5531\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#C750FF\" />\n <stop offset=\"1\" stopColor=\"#5800E8\" />\n </linearGradient>\n <clipPath id=\"clip0_862_2449\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","export const OrderlyIcon = (props: {\n className?: string;\n}) => {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}\n >\n <g clipPath=\"url(#clip0_862_2443)\">\n <path\n d=\"M10.0249 19.9491C15.5202 19.9491 19.9751 15.4942 19.9751 9.99883C19.9751 4.50346 15.5202 0.048584 10.0249 0.048584C4.52949 0.048584 0.0746155 4.50346 0.0746155 9.99883C0.0746155 15.4942 4.52949 19.9491 10.0249 19.9491Z\"\n fill=\"url(#paint0_linear_862_2443)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.1556 4.8931C14.2202 4.94547 14.1824 5.04764 14.0992 5.04764H5.95063C5.86743 5.04764 5.82963 4.94547 5.89428 4.8931C7.02258 3.97918 8.4598 3.4317 10.0249 3.4317C11.59 3.4317 13.0272 3.97918 14.1556 4.8931Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.47028 11.7869C7.4233 11.7199 7.34764 11.6777 7.26581 11.6777H3.83C3.75128 11.6777 3.69391 11.7525 3.71579 11.8281C4.50796 14.565 7.03275 16.566 10.0249 16.566C13.0171 16.566 15.5419 14.565 16.334 11.8281C16.3559 11.7525 16.2985 11.6777 16.2198 11.6777H12.7841C12.7022 11.6777 12.6266 11.7199 12.5796 11.7869C12.0156 12.5911 11.0817 13.1167 10.025 13.1167C8.96818 13.1167 8.03421 12.5911 7.47028 11.7869Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.335 7.90476C12.3825 7.95713 12.4493 7.98867 12.5199 7.98867H16.114C16.1955 7.98867 16.2533 7.9094 16.2264 7.83259C15.9727 7.10647 15.5951 6.43851 15.119 5.85405C15.0743 5.79918 15.007 5.76813 14.9361 5.76813H5.11354C5.04278 5.76813 4.97543 5.79918 4.93074 5.85405C4.45459 6.43851 4.07701 7.10647 3.82337 7.83259C3.79652 7.9094 3.85428 7.98867 3.93567 7.98867H7.52982C7.60052 7.98867 7.66725 7.95713 7.71475 7.90476C8.28522 7.27587 9.10892 6.88093 10.0249 6.88093C10.9408 6.88093 11.7646 7.27587 12.335 7.90476Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.116 10.9587C13.0549 10.9587 13.0114 10.8991 13.028 10.8402C13.1029 10.5723 13.1429 10.29 13.1429 9.99822C13.1429 9.5877 13.0636 9.19568 12.9195 8.83669C12.895 8.77593 12.9388 8.70813 13.0042 8.70813H16.3916C16.4345 8.70813 16.4716 8.73843 16.4795 8.78064C16.5534 9.17523 16.5921 9.58228 16.5921 9.99832C16.5921 10.2979 16.572 10.5927 16.5333 10.8816C16.5273 10.9259 16.4894 10.9587 16.4447 10.9587H13.116ZM7.02183 10.8402C7.03829 10.8991 6.99492 10.9587 6.93381 10.9587H3.60511C3.56045 10.9587 3.52246 10.9259 3.51651 10.8816C3.47767 10.5927 3.45761 10.2979 3.45761 9.99832C3.45761 9.58228 3.49631 9.17523 3.5703 8.78064C3.5782 8.73843 3.61523 8.70813 3.65817 8.70813H7.04553C7.11101 8.70813 7.15477 8.77593 7.13037 8.83669C6.98617 9.19568 6.90682 9.5877 6.90682 9.99822C6.90682 10.29 6.94688 10.5723 7.02183 10.8402Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_862_2443\"\n x1=\"10.0249\"\n y1=\"0.0486119\"\n x2=\"10.0249\"\n y2=\"19.9491\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#C750FF\" />\n <stop offset=\"1\" stopColor=\"#5800E8\" />\n </linearGradient>\n <clipPath id=\"clip0_862_2443\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n };\n ","import React, { FC, useState } from \"react\";\nimport { Flex, Text, Tooltip } from \"@orderly.network/ui\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport type RewardsTooltipProps = {\n brokerName: string | undefined;\n curRewards: number;\n otherRewards: number;\n};\n\nexport const RewardsTooltip: FC<{\n rewardsTooltip?: RewardsTooltipProps;\n children?: React.ReactElement;\n className?: string;\n arrowClassName?: string;\n align?: \"start\" | \"center\" | \"end\";\n}> = (props) => {\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n\n const content = (): any => {\n return (\n <Flex\n direction={\"column\"}\n className=\"oui-leading-[1.5] oui-text-2xs oui-text-base-contrast-80 oui-min-w-[204px]\"\n gap={1}\n >\n <Flex gap={1} width={\"100%\"}>\n <Text className=\"oui-flex-1\">{props.rewardsTooltip?.brokerName}</Text>\n <Text>\n {commifyOptional(props.rewardsTooltip?.curRewards, { fix: 2 })}\n </Text>\n </Flex>\n <Flex gap={1} width={\"100%\"}>\n <Text className=\"oui-flex-1\">\n {t(\"tradingRewards.otherOrderlyDex\")}\n </Text>\n <Text>\n {commifyOptional(props.rewardsTooltip?.otherRewards, { fix: 2 })}\n </Text>\n </Flex>\n </Flex>\n );\n };\n\n return (\n <Tooltip\n content={content()}\n align={props.align}\n className={props.className}\n open={open}\n onOpenChange={setOpen}\n arrow={{\n className: props.arrowClassName,\n }}\n delayDuration={100}\n >\n {!!props.children ? (\n React.cloneElement(props.children!, {\n onClick: (e: any) => {\n e.preventDefault();\n setOpen(!open);\n },\n })\n ) : (\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=\"oui-cursor-pointer\"\n onClick={(e) => {\n e.preventDefault();\n setOpen(!open);\n }}\n >\n <path\n d=\"M10.5 1.678a8.333 8.333 0 1 0-.001 16.667 8.333 8.333 0 0 0 0-16.667m0 4.167a.833.833 0 1 1-.001 1.667.833.833 0 0 1 0-1.667m0 2.5c.46 0 .832.373.832.833v4.167a.833.833 0 0 1-1.666 0V9.178c0-.46.373-.833.833-.833\"\n fill=\"#fff\"\n fillOpacity=\".36\"\n />\n </svg>\n )}\n </Tooltip>\n );\n};\n","import { useState, useEffect, FC, ReactNode, SVGProps, useMemo } from \"react\";\nimport { EpochStatus } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, Flex, Text, cn } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { CurEpochReturns } from \"./curEpoch.script\";\nimport { RewardsTooltip } from \"./rewardsTooltip\";\n\nexport const CurEpoch: FC<CurEpochReturns> = (props) => {\n const { t } = useTranslation();\n\n const state = props;\n const curEpochInfo = state.epochList?.[1].curEpochInfo;\n const epochList = state.epochList?.[0];\n const startTime = curEpochInfo?.start_time;\n const endTime = curEpochInfo?.end_time;\n const curEpochId = curEpochInfo?.epoch_id;\n const max_reward_amount = curEpochInfo?.max_reward_amount;\n const token = curEpochInfo?.epoch_token;\n\n const isOrder = curEpochInfo\n ? `${curEpochInfo?.epoch_token}`.toLowerCase() === \"order\"\n : undefined;\n\n const pausedEpochTimeDown = useMemo(() => {\n if (!props.showEpochPauseCountdown) {\n return undefined;\n }\n if (!epochList || props.statusInfo?.epochStatus !== EpochStatus.paused) {\n return undefined;\n }\n\n const lastCompletedEpoch = props.statusInfo?.lastCompletedEpoch;\n if (lastCompletedEpoch === undefined) {\n return undefined;\n }\n const nextEpoch = lastCompletedEpoch + 1;\n const epoch = epochList.find((item: any) => item.epoch_id === nextEpoch);\n return epoch?.start_time;\n }, [props.statusInfo?.epochStatus, epochList]);\n\n const showPauseCountdown = useMemo(() => {\n return (\n props.statusInfo?.epochStatus === EpochStatus.paused &&\n pausedEpochTimeDown\n );\n }, [props.statusInfo?.epochStatus, pausedEpochTimeDown]);\n\n if (props.statusInfo?.epochStatus !== EpochStatus.active) {\n return (\n <Flex\n id=\"oui-tradingRewards-home-currentEpoch\"\n r={\"2xl\"}\n className=\"oui-bg-base-9 oui-font-semibold oui-p-10\"\n width={\"100%\"}\n height={\"100%\"}\n direction={\"column\"}\n // justify={\"stretch\"}\n itemAlign={\"stretch\"}\n >\n <Flex\n gap={2}\n direction={\"column\"}\n justify={\"center\"}\n itemAlign={\"center\"}\n className=\"oui-size-full\"\n >\n {showPauseCountdown ? (\n <Flex\n gap={2}\n direction={\"column\"}\n justify={\"center\"}\n itemAlign={\"center\"}\n >\n <Text className=\"oui-text-base-contrast-54 oui-text-sm\">\n {t(\"tradingRewards.epochPauseCountdown.title\")}\n </Text>\n <Countdown targetTimestamp={pausedEpochTimeDown} isStandalone />\n </Flex>\n ) : (\n <Flex\n className=\"oui-text-base-contrast-54 oui-text-sm oui-text-center\"\n justify={\"center\"}\n itemAlign={\"center\"}\n >\n {props.statusInfo?.epochStatus === EpochStatus.paused\n ? t(\"tradingRewards.eopchStatus.pause\")\n : t(\"tradingRewards.eopchStatus.ended\")}\n </Flex>\n )}\n {props.statusInfo?.epochStatus === EpochStatus.paused && (\n <div\n className={cn(\n \"oui-w-full\",\n showPauseCountdown ? \"oui-mt-2\" : \"oui-mt-0\",\n )}\n >\n <TwitterLInk />\n </div>\n )}\n </Flex>\n </Flex>\n );\n }\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-currentEpoch\"\n r={\"2xl\"}\n className=\"oui-bg-base-9 oui-font-semibold\"\n width={\"100%\"}\n height={\"100%\"}\n direction={\"column\"}\n // justify={\"stretch\"}\n itemAlign={\"stretch\"}\n >\n <Countdown targetTimestamp={endTime} />\n <Flex p={6} direction={\"column\"} gap={4} className=\"oui-h-full\">\n <Flex direction={\"row\"} gap={3} width={\"100%\"} justify={\"around\"}>\n <Statics\n title={t(\"tradingRewards.epoch\")}\n highLight={curEpochId ? `${curEpochId}` : \"--\"}\n text={\n startTime && endTime\n ? `${getDate(startTime)} - ${getDate(endTime)}`\n : \"\"\n }\n />\n <Statics\n title={t(\"tradingRewards.epochRewards\")}\n highLight={commifyOptional(max_reward_amount, { fix: 0 })}\n text={token}\n />\n </Flex>\n <EstRewards\n isOrder={isOrder}\n direction={state.notConnected ? \"row\" : \"column\"}\n justify={state.notConnected ? \"between\" : \"center\"}\n hideData={state.hideData}\n estRewards={state.hideData ? \"--\" : props.estimate?.est_r_wallet}\n rewardsTooltip={props.rewardsTooltip}\n background={\n state.notConnected\n ? \"linear-gradient(28.29deg, #1B1D22 21.6%, #26292E 83.23%)\"\n : \"linear-gradient(0deg, #2D0061 2.62%, #BD6BED 86.5%)\"\n }\n />\n {/* {state.notConnected && (\n <Button\n variant=\"gradient\"\n fullWidth\n onClick={(e) => {\n e.stopPropagation();\n state.connect();\n }}\n >\n Connect wallet\n </Button>\n )} */}\n\n <div className=\"oui-w-full\">\n <AuthGuard\n status={AccountStatusEnum.SignedIn}\n buttonProps={{ fullWidth: true }}\n >\n <></>\n </AuthGuard>\n </div>\n </Flex>\n </Flex>\n );\n};\n\nconst EstRewards: FC<{\n isOrder?: boolean;\n estRewards?: number | string;\n direction: \"row\" | \"column\";\n justify: \"center\" | \"between\";\n background: string;\n hideData: boolean;\n rewardsTooltip:\n | {\n brokerName: string | undefined;\n curRewards: number;\n otherRewards: number;\n }\n | undefined;\n}> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n direction={props.direction}\n gap={2}\n py={4}\n px={6}\n width={\"100%\"}\n r=\"xl\"\n itemAlign={\"center\"}\n justify={props.justify}\n style={{\n background: props.background,\n }}\n className=\"oui-flex-1 oui-h-full\"\n >\n <Text className=\"oui-text-base xl:oui-text-lg oui-text-base-contrast-54\">\n {t(\"tradingRewards.myEstRewards\")}\n </Text>\n <Flex direction={\"row\"} gap={3}>\n {props.isOrder == true && (\n <OrderlyIcon className=\"oui-w-5 oui-h-5 md:oui-w-6 md:oui-h-6 lg:oui-w-7 lg:oui-h-7 xl:oui-w-8 xl:oui-h-8\" />\n )}\n {props.isOrder == false && (\n <EsOrderlyIcon className=\"oui-w-5 oui-h-5 md:oui-w-6 md:oui-h-6 lg:oui-w-7 lg:oui-h-7 xl:oui-w-8 xl:oui-h-8\" />\n )}\n <Text\n children={commifyOptional(props.estRewards, { fix: 2 })}\n className=\"oui-text-xl md:oui-text-2xl xl:oui-text-[32px]\"\n />\n {props.rewardsTooltip && (\n <RewardsTooltip rewardsTooltip={props.rewardsTooltip} />\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst Statics: FC<{\n title: string;\n highLight?: string;\n text?: string;\n}> = (props) => {\n const { title, highLight, text } = props;\n return (\n <Flex\n // px={1}\n py={2}\n justify={\"between\"}\n direction={\"column\"}\n className=\"flex-1\"\n gap={2}\n >\n <Text\n className={cn(\n \"oui-text-base-contrast-54\",\n // font size\n \"oui-text-xs md:oui-text-sm xl:oui-text-base\",\n /// leading\n \"oui-leading-[20px] xl:oui-leading-[24px]\",\n )}\n >\n {title}\n </Text>\n <Flex direction={\"row\"} gap={1} itemAlign={\"end\"} justify={\"center\"}>\n <Text.gradient\n color=\"brand\"\n angle={90}\n className=\"oui-text-base md:oui-text-lg lg:oui-text-xl xl:oui-text-2xl\"\n >\n {highLight}\n </Text.gradient>\n <Text\n intensity={80}\n className=\"oui-mb-[3px] oui-text-2xs md:oui-text-xs xl:oui-text-sm\"\n >\n {text}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\nconst Countdown: FC<{\n targetTimestamp?: number;\n isStandalone?: boolean;\n}> = (props) => {\n const { targetTimestamp, isStandalone } = props;\n const { t } = useTranslation();\n const [timeLeft, setTimeLeft] = useState({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n\n useEffect(() => {\n const intervalId = setInterval(() => {\n if (typeof targetTimestamp === \"undefined\") return;\n const now = new Date().getTime();\n const distance = targetTimestamp - now;\n\n if (distance < 0) {\n clearInterval(intervalId as unknown as number);\n setTimeLeft({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n } else {\n const days = Math.floor(distance / (1000 * 60 * 60 * 24));\n const hours = Math.floor(\n (distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60),\n );\n const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\n const seconds = Math.floor((distance % (1000 * 60)) / 1000);\n\n setTimeLeft({ days, hours, minutes, seconds });\n }\n }, 1000);\n\n return () => clearInterval(intervalId as unknown as number);\n }, [targetTimestamp]);\n\n const num = (value: string) => {\n return (\n <Text className=\"oui-text-sm oui-text-base-contrast md:oui-text-base lg:oui-text-lg \">\n {value}\n </Text>\n );\n };\n\n return (\n <Box\n className=\"oui-rounded-t-2xl oui-font-semibold oui-text-base-contrast-54\"\n gradient={isStandalone ? undefined : \"neutral\"}\n angle={180}\n width={\"full\"}\n >\n <Flex justify={\"center\"} gap={1}>\n {isStandalone ? null : <span>{`${t(\"common.countdown\")}: `}</span>}\n <Flex\n direction={\"row\"}\n itemAlign={\"end\"}\n gap={1}\n className={cn(\n \"oui-text-2xs md:oui-text-xs lg:oui-text-sm\",\n isStandalone ? \"oui-py-0\" : \"oui-py-[13px]\",\n )}\n >\n {num(`${timeLeft.days}`.padStart(2, \"0\"))}\n <span>D</span>\n {num(`${timeLeft.hours}`.padStart(2, \"0\"))}\n <span>H</span>\n {num(`${timeLeft.minutes}`.padStart(2, \"0\"))}\n <span>M</span>\n {num(`${timeLeft.seconds}`.padStart(2, \"0\"))}\n <span>S</span>\n </Flex>\n </Flex>\n </Box>\n );\n};\n\nconst CountDownNum = (props: { children?: ReactNode }) => {\n return (\n <Text className=\"oui-text-sm oui-text-base-contrast md:oui-text-base lg:oui-text-lg \">\n {props.children}\n </Text>\n );\n};\n\nconst getDate = (timestamp?: number) => {\n if (!timestamp) return \"\";\n\n const date = new Date(timestamp);\n\n // return format(timestamp, \"MMM. d\");\n\n const monthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ];\n const month = monthNames[date.getUTCMonth()];\n const day = date.getUTCDate();\n return `${month}. ${day}`;\n};\n\nexport const ArrowRightIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"mask0_1997_45723\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"21\"\n height=\"20\"\n >\n <rect x=\"0.5\" width=\"20\" height=\"20\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_1997_45723)\">\n <path\n d=\"M12.0384 14.7111L11.1603 13.8073L14.343 10.6246H4.25V9.37463H14.343L11.1603 6.19192L12.0384 5.28809L16.75 9.99961L12.0384 14.7111Z\"\n // fill=\"black\"\n // fill-opacity=\"0.8\"\n />\n </g>\n </svg>\n);\nconst TwitterLInk: FC = () => {\n const { t } = useTranslation();\n return (\n <Flex\n gap={1}\n itemAlign={\"center\"}\n justify={\"center\"}\n className=\"oui-group oui-cursor-pointer oui-fill-base-contrast-36 oui-text-sm oui-text-base-contrast-36 group-hover:oui-text-base-contrast-80\"\n onClick={() => window.open(\"https://x.com/OrderlyNetwork\")}\n >\n <div className=\"oui-cursor-pointer oui-fill-base-contrast-36 oui-text-sm oui-text-base-contrast-36 group-hover:oui-text-base-contrast-80\">\n {t(\"tradingRewards.eopchStatus.linkDescription\")}\n </div>\n <ArrowRightIcon className=\"oui-text-fill-base-contrast-36 oui-fill-base-contrast-36 group-hover:oui-fill-base-contrast-80\" />\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { useCurEpochScript } from \"./curEpoch.script\";\nimport { CurEpoch } from \"./curEpoch.ui\";\n\nexport const CurEpochWidget: FC = () => {\n const state = useCurEpochScript();\n return <CurEpoch {...state} />;\n};\n","export { CurEpochWidget } from \"./curEpoch.widget\";\nexport { CurEpoch } from \"./curEpoch.ui\";\nexport { useCurEpochScript } from \"./curEpoch.script\";\n","import { useCallback, useMemo } from \"react\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { ENVType, useGetEnv, useWalletConnector } from \"@orderly.network/hooks\";\nimport { useTradingRewardsContext } from \"../provider\";\n\nexport type AvailableReturns = {\n order?: number;\n esOrder?: number;\n goToClaim?: (e: any) => void;\n};\n\nexport const useAvailableScript = (): AvailableReturns => {\n const {\n totalOrderClaimedReward,\n walletRewardsHistory,\n totalEsOrderClaimedReward,\n } = useTradingRewardsContext();\n const [orderClaimedRewardData] = totalOrderClaimedReward;\n const [esOrderClaimedRewardData] = totalEsOrderClaimedReward;\n\n const { namespace } = useWalletConnector();\n\n const [data] = walletRewardsHistory;\n\n const lifetimeOrderReward = useMemo(() => {\n if (namespace === ChainNamespace.evm) {\n return data?.wallet_lifetime_trading_rewards_order;\n }\n return data?.wallet_pending_trading_rewards_order;\n }, [namespace, data]);\n\n const lifetimeEsOrderReward = useMemo(() => {\n if (namespace === ChainNamespace.evm) {\n return data?.wallet_lifetime_trading_rewards_escrow;\n }\n return data?.wallet_pending_trading_rewards_escrow;\n }, [data, namespace]);\n\n const env = useGetEnv();\n const goToClaim = (e: any) => {\n const url = `https://${\n env !== ENVType.prod ? `${env}-` : \"\"\n }app.orderly.network/tradingRewards`;\n window.open(url, \"_blank\");\n };\n\n const calculateRemainingReward = useCallback(\n (totalReward: string | undefined, claimedReward: number | undefined) => {\n if (\n typeof claimedReward !== \"undefined\" &&\n typeof totalReward !== \"undefined\"\n ) {\n const remainingReward = new Decimal(totalReward)\n .sub(claimedReward)\n .toFixed(18, Decimal.ROUND_DOWN);\n return Number(remainingReward);\n }\n return undefined;\n },\n []\n );\n\n const availableOrder = useMemo(\n () => calculateRemainingReward(lifetimeOrderReward, orderClaimedRewardData),\n [lifetimeOrderReward, orderClaimedRewardData, calculateRemainingReward]\n );\n\n const availableEsOrder = useMemo(\n () =>\n calculateRemainingReward(lifetimeEsOrderReward, esOrderClaimedRewardData),\n [lifetimeEsOrderReward, esOrderClaimedRewardData, calculateRemainingReward]\n );\n\n const orderValue = useDataTap<number | undefined>(availableOrder);\n const esorderValue = useDataTap<number | undefined>(availableEsOrder);\n return {\n order: orderValue ?? undefined,\n esOrder: esorderValue ?? undefined,\n goToClaim,\n };\n};\n","export const JumpIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n // fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n >\n <path\n d=\"M11.3275 13.9938C12.8001 13.9938 13.9941 12.7998 13.9941 11.3272V4.66049C13.9941 3.18782 12.8001 1.99382 11.3275 1.99382H4.66081C3.18814 1.99382 1.99414 3.18782 1.99414 4.66049V11.3272C1.99414 12.7998 3.18814 13.9938 4.66081 13.9938H11.3275ZM5.99414 10.6605C5.82347 10.6605 5.64548 10.6031 5.51481 10.4732C5.25481 10.2125 5.25481 9.77516 5.51481 9.51449L8.18148 6.84782L6.66081 5.32715H10.6608V9.32715L9.14014 7.80648L6.47347 10.4732C6.34347 10.6031 6.16481 10.6605 5.99414 10.6605Z\"\n \n />\n </svg>\n );\n};\n","import { Flex, Text } from \"@orderly.network/ui\";\nimport { JumpIcon } from \"../components/jumpIcon\";\nimport { FC } from \"react\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { AvailableReturns } from \"./availableToClaim.script\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const AvailableToClaim: FC<AvailableReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-availableToClaim\"\n p={6}\n r=\"2xl\"\n direction={\"column\"}\n gap={4}\n width={\"100%\"}\n className=\" oui-font-semibold oui-bg-base-9 \"\n >\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">\n {t(\"tradingRewards.availableClaim\")}\n </Text>\n <Flex\n direction={\"row\"}\n gap={1}\n onClick={props.goToClaim}\n className=\"oui-cursor-pointer oui-text-primary-light\"\n >\n <Text size=\"sm\">{t(\"tradingRewards.claim\")}</Text>\n <JumpIcon />\n </Flex>\n </Flex>\n <Flex direction={\"row\"} gap={3} width={\"100%\"}>\n <Statics title=\"ORDER\" value={props.order} />\n <Statics title=\"esORDER\" value={props.esOrder} isEsOrder />\n </Flex>\n </Flex>\n );\n};\n// background: linear-gradient(28.29deg, #1B1D22 21.6%, #26292E 83.23%);\n\nconst Statics: FC<{\n title: string;\n isEsOrder?: boolean;\n value?: number;\n}> = (props) => {\n const { value } = props;\n return (\n <Flex\n className=\"oui-flex-1 oui-bg-base-8 oui-py-[11px]\"\n direction={\"column\"}\n gap={2}\n r=\"xl\"\n gradient=\"neutral\"\n angle={180}\n border\n borderColor={6}\n >\n <Text className=\"oui-text-xs xl:oui-text-sm oui-text-base-contrast-54\">\n {props.title}\n </Text>\n <Flex direction={\"row\"} gap={1}>\n {props.isEsOrder ? <EsOrderlyIcon /> : <OrderlyIcon />}\n <Text\n className=\"oui-text-sm xl:oui-text-base\"\n children={commifyOptional(value, { fix: 2 })}\n />\n </Flex>\n </Flex>\n );\n};\n","import React from \"react\";\nimport { useAvailableScript } from \"./availableToClaim.script\";\nimport { AvailableToClaim } from \"./availableToClaim.ui\";\n\nexport const AvailableToClaimWidget: React.FC = () => {\n const state = useAvailableScript();\n return <AvailableToClaim {...state} />;\n};\n","\nexport { AvailableToClaimWidget } from \"./availableToClaim.widget\";\nexport { AvailableToClaim } from \"./availableToClaim.ui\";","import { CurrentEpochEstimate } from \"@orderly.network/hooks\";\nimport { useTradingRewardsContext } from \"../provider\";\nimport { ENVType, useGetEnv } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMemo } from \"react\";\n\nexport const useStakeBoosterScript = () => {\n const { curEpochEstimate } = useTradingRewardsContext();\n\n const env = useGetEnv();\n const stakeNow = (e: any) => {\n const url = `https://${\n env !== ENVType.prod ? `${env}-` : \"\"\n }app.orderly.network/staking`;\n window.open(url, \"_blank\");\n };\n const estimateValue = useDataTap(curEpochEstimate);\n\n const booster = useMemo(() => {\n const estStakeBoost = curEpochEstimate?.est_stake_boost;\n if (typeof estStakeBoost === \"undefined\" || estStakeBoost === null) {\n return undefined;\n }\n\n if (estStakeBoost === 0) return estStakeBoost;\n\n return new Decimal(estStakeBoost)\n .div(new Decimal(10).pow(0.15))\n .toDecimalPlaces(2, Decimal.ROUND_DOWN)\n .toString();\n }, [curEpochEstimate?.est_stake_boost]);\n return {\n curEpochEstimate: estimateValue ?? undefined,\n stakeNow,\n booster,\n };\n};\n\n\nexport type StakeBoosterReturns = ReturnType<typeof useStakeBoosterScript>;","export const RocketIcon = () => {\n return (\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=\"M14.439 10.5672C14.0868 10.9198 13.7025 11.2403 13.3183 11.5287C13.1902 11.6248 13.1261 11.721 13.0941 11.8812C12.7739 13.1952 12.1015 14.4451 11.0448 15.5027C10.5645 15.9835 10.0522 16.3681 9.47584 16.7206C8.99553 17.009 8.41917 16.5283 8.61129 15.9835C8.93149 15.1502 9.05957 14.2528 9.05957 13.3234C8.99553 13.3234 8.89947 13.3555 8.83543 13.3555C8.06695 12.7145 7.3625 12.0415 6.65805 11.3364C5.95361 10.6313 5.28118 9.89421 4.64078 9.15708C4.64078 9.09299 4.6728 8.99684 4.6728 8.93274C3.74421 8.93274 2.84764 9.09299 2.01512 9.38143C1.50279 9.57372 0.990469 8.99684 1.27865 8.51611C1.63087 7.93923 2.01512 7.42645 2.49542 6.94572C3.55209 5.88811 4.80088 5.21508 6.11371 4.89459C6.24179 4.86255 6.36987 4.7664 6.46593 4.67025C6.75412 4.25362 7.07432 3.90108 7.42654 3.54855C9.92412 1.04874 13.4143 0.183422 16.6484 0.920545C16.8725 0.984642 17.0326 1.14489 17.0967 1.36923C17.8011 4.57411 16.9366 8.06742 14.439 10.5672ZM13.0301 4.95869C12.2616 4.18952 10.9808 4.18952 10.2123 4.95869C9.44382 5.72786 9.44382 7.00982 10.2123 7.77899C10.9808 8.54816 12.2616 8.54816 13.0301 7.77899C13.8306 6.97777 13.8306 5.72786 13.0301 4.95869ZM5.88957 14.7656C5.28118 15.3745 1.53481 17.9385 0.798348 17.2013C0.0618817 16.4642 2.6235 12.7145 3.23189 12.1056C3.84027 11.4966 4.92896 11.5928 5.66543 12.3299C6.40189 13.067 6.49795 14.1567 5.88957 14.7656Z\"\n fill=\"url(#paint0_linear_88_1748)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_88_1748\"\n x1=\"17.3331\"\n y1=\"8.99996\"\n x2=\"0.666504\"\n y2=\"8.99996\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n","import { FC, ReactNode } from \"react\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { JumpIcon } from \"../components/jumpIcon\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { RocketIcon } from \"../components/rocket\";\nimport { StakeBoosterReturns } from \"./stakeBooster.script\";\nimport { commify, commifyOptional } from \"@orderly.network/utils\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const StakeBooster: FC<StakeBoosterReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-stakeBooster\"\n p={6}\n r=\"2xl\"\n direction={\"column\"}\n gap={4}\n width={\"100%\"}\n className=\" oui-font-semibold oui-bg-base-9 \"\n >\n <Flex direction={\"row\"} justify={\"between\"} width={\"100%\"}>\n <Text className=\"oui-text-lg\">{t(\"tradingRewards.stakeBooster\")}</Text>\n <Flex\n direction={\"row\"}\n gap={1}\n onClick={props.stakeNow}\n className=\"oui-cursor-pointer oui-text-primary-light\"\n >\n <Text size=\"sm\">{t(\"tradingRewards.stake\")}</Text>\n <JumpIcon />\n </Flex>\n </Flex>\n <Flex direction={\"row\"} gap={3} width={\"100%\"}>\n <Statics\n title={t(\"tradingRewards.avgStakedAmount\")}\n value={props.curEpochEstimate?.est_avg_stake}\n icon={\n <div className=\"oui-flex oui-w-[32px] oui-h-[20px] oui-relative\">\n <div className=\"oui-absolute oui-right-0 oui-top-0\">\n <EsOrderlyIcon />\n </div>\n <div className=\"oui-absolute oui-left-0 oui-top-0 \">\n <OrderlyIcon />\n </div>\n </div>\n }\n />\n <Statics\n title={t(\"tradingRewards.booster\")}\n value={props.booster}\n icon={<RocketIcon />}\n gradient\n />\n </Flex>\n </Flex>\n );\n};\n\nconst Statics: FC<{\n title: string;\n icon: ReactNode;\n value?: number | string;\n gradient?: boolean;\n}> = (props) => {\n const calcValue = commify(props.value || \"--\", 2);\n return (\n <Flex\n className=\"oui-flex-1 oui-bg-base-8 oui-py-[11px]\"\n direction={\"column\"}\n gap={2}\n r=\"xl\"\n gradient=\"neutral\"\n angle={180}\n border\n borderColor={6}\n >\n <Text className=\"oui-text-xs xl:oui-text-sm oui-text-base-contrast-54\">\n {props.title}\n </Text>\n <Flex direction={\"row\"} gap={1}>\n {props.icon}\n {props.gradient ? (\n <Text.gradient\n className=\"oui-text-sm xl:oui-text-base\"\n color=\"brand\"\n angle={90}\n >\n {calcValue + (calcValue === \"--\" ? \"\" : \"x\")}\n </Text.gradient>\n ) : (\n <Text className=\"oui-text-sm xl:oui-text-base\">\n {commifyOptional(props.value, { fix: 2 })}\n </Text>\n )}\n </Flex>\n </Flex>\n );\n};\n","import React from \"react\";\nimport { useStakeBoosterScript } from \"./stakeBooster.script\";\nimport { StakeBooster } from \"./stakeBooster.ui\";\n\nexport const StakeBoosterWidget: React.FC = () => {\n const state = useStakeBoosterScript();\n return <StakeBooster {...state} />;\n};\n","\nexport { StakeBoosterWidget } from \"./stakeBooster.widget\";\nexport { StakeBooster } from \"./stakeBooster.ui\";","import { FC } from \"react\";\nimport {\n Box,\n Divider,\n Flex,\n ListView,\n Text,\n DataTable,\n Column,\n} from \"@orderly.network/ui\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { ListType, RewardsHistoryReturns } from \"./rewardsHistory.script\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { AuthGuardEmpty } from \"@orderly.network/ui-connector\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { RewardsTooltip } from \"../curEpoch/rewardsTooltip\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const RewardHistory: FC<RewardsHistoryReturns> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Flex\n id=\"oui-tradingRewards-home-rewardHistory\"\n py={4}\n px={3}\n direction={\"column\"}\n gap={2}\n itemAlign={\"start\"}\n r=\"2xl\"\n className=\"oui-bg-base-9 oui-w-full oui-font-semibold oui-tabular-nums\"\n >\n <Text className=\"oui-text-lg oui-px-3\">\n {t(\"tradingRewards.rewardHistory\")}\n </Text>\n <div className=\"oui-border-t-2 oui-border-line-4 oui-w-full\">\n <List {...props} />\n </div>\n </Flex>\n );\n};\n\nconst List: FC<RewardsHistoryReturns> = (props) => {\n const isMobile = useMediaQuery(\"(max-width: 767px)\");\n\n return isMobile ? (\n <ListView\n dataSource={props.originalData}\n renderItem={(item, index) => {\n return <MobileCell data={item} />;\n }}\n className=\"oui-mt-3 oui-max-h-[356px]\"\n />\n ) : (\n <Box px={3}>\n <DesktopList {...props} />\n </Box>\n );\n};\n\nconst MobileCell: FC<{\n data: ListType;\n}> = (props) => {\n const { data } = props;\n const { t } = useTranslation();\n\n console.log(data.rewardsTooltip);\n const isOrder =\n `${data?.info?.epoch_token || data.epoch_token}`.toLowerCase() === \"order\";\n const r_warret = commifyOptional(data.info?.r_wallet, { fix: 2 });\n\n return (\n <Flex\n key={data.epoch_id}\n direction={\"column\"}\n px={4}\n pt={0}\n gap={3}\n className=\"oui-text-base-contrast-80\"\n >\n <Flex direction={\"row\"} width={\"100%\"}>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"start\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.epoch\")}\n </Text>\n <Text className=\"oui-text-sm\">{`Epoch ${data.epoch_id}`}</Text>\n </Flex>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"start\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.epochRewards\")}{\" \"}\n </Text>\n <Flex gap={1}>\n {isOrder ? <OrderlyIcon /> : <EsOrderlyIcon />}\n <Text className=\"oui-text-sm\">\n {commifyOptional(data.max_reward_amount, { fix: 2 })}\n </Text>\n </Flex>\n </Flex>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"end\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.rewardsEarned\")}{\" \"}\n </Text>\n <Flex gap={1}>\n {r_warret !== \"--\" &&\n (isOrder ? <OrderlyIcon /> : <EsOrderlyIcon />)}\n {!!data.rewardsTooltip ? (\n <RewardsTooltip\n rewardsTooltip={data.rewardsTooltip}\n children={\n <Text className=\"oui-text-sm oui-underline oui-decoration-dashed oui-cursor-pointer oui-underline-offset-4 oui-decoration-line-16\">\n {r_warret}\n </Text>\n }\n align=\"center\"\n className=\"oui-bg-base-5\"\n arrowClassName=\"oui-fill-base-5\"\n />\n ) : (\n <Text className=\"oui-text-sm\">{r_warret}</Text>\n )}\n </Flex>\n </Flex>\n </Flex>\n <Flex direction={\"row\"} width={\"100%\"}>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"start\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.rewardHistory.column.startDate\")}\n </Text>\n <Flex direction={\"row\"}>\n <Text className=\"oui-text-sm\">\n {formatTimestamp(data.start_time).firstPart}&nbsp;\n </Text>\n <Text className=\"oui-text-2xs oui-text-base-contrast-36\">\n {formatTimestamp(data.start_time).secondPart}\n </Text>\n </Flex>\n </Flex>\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[6px] oui-flex-1\"\n itemAlign={\"end\"}\n >\n <Text className=\"oui-text-base-contrast-36 oui-text-2xs\">\n {t(\"tradingRewards.rewardHistory.column.endDate\")}\n </Text>\n <Flex direction={\"row\"}>\n <Text className=\"oui-text-sm\">\n {formatTimestamp(data.end_time).firstPart}&nbsp;\n </Text>\n <Text className=\"oui-text-2xs oui-text-base-contrast-36\">\n {formatTimestamp(data.end_time).secondPart}\n </Text>\n </Flex>\n </Flex>\n </Flex>\n <Divider className=\"oui-w-full\" />\n </Flex>\n );\n};\n\nconst DesktopList: FC<RewardsHistoryReturns> = (props) => {\n const { data } = props;\n const { t } = useTranslation();\n\n const columns: Column<ListType>[] = [\n {\n title: t(\"tradingRewards.epoch\"),\n dataIndex: \"epoch_id\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value) => {\n return <Text>{`${t(\"tradingRewards.epoch\")} ${value}`}</Text>;\n },\n },\n {\n title: t(\"tradingRewards.rewardHistory.column.start&EndDate\"),\n dataIndex: \"time\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value, record) => {\n return (\n <Flex\n direction={\"column\"}\n className=\"oui-gap-[2px]\"\n justify={\"start\"}\n itemAlign={\"start\"}\n >\n <Flex direction={\"row\"} gap={1}>\n <Text>{formatTimestamp(record.start_time).firstPart}</Text>\n <Text className=\"oui-text-base-contrast-54\">\n {formatTimestamp(record.start_time).secondPart}\n </Text>\n </Flex>\n <Flex direction={\"row\"} gap={1}>\n <Text>{formatTimestamp(record.end_time).firstPart}</Text>\n <Text className=\"oui-text-base-contrast-54\">\n {formatTimestamp(record.end_time).secondPart}\n </Text>\n </Flex>\n </Flex>\n );\n },\n },\n {\n title: t(\"tradingRewards.epochRewards\"),\n dataIndex: \"max_reward_amount\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value, record) => {\n const isOrder =\n `${record?.info?.epoch_token || record.epoch_token}`.toLowerCase() ===\n \"order\";\n return (\n <Flex direction={\"row\"} gap={1}>\n {isOrder ? <OrderlyIcon /> : <EsOrderlyIcon />}\n <Text>{commifyOptional(value)}</Text>\n </Flex>\n );\n },\n },\n {\n title: t(\"tradingRewards.rewardsEarned\"),\n dataIndex: \"earned\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value, record) => {\n const isOrder =\n `${record?.info?.epoch_token || record.epoch_token}`.toLowerCase() ===\n \"order\";\n\n let children = (\n <Text\n className={\n record.rewardsTooltip\n ? \"oui-underline oui-decoration-dashed oui-cursor-pointer oui-underline-offset-4 oui-decoration-line-16\"\n : \"\"\n }\n >\n {commifyOptional(record.info?.r_wallet, { fix: 2 })}\n </Text>\n );\n\n if (record.rewardsTooltip) {\n children = (\n <RewardsTooltip\n rewardsTooltip={record.rewardsTooltip}\n children={children}\n align=\"center\"\n className=\"oui-bg-base-5\"\n arrowClassName=\"oui-fill-base-5\"\n />\n );\n }\n return (\n <Flex direction={\"row\"} gap={1}>\n {isOrder ? <OrderlyIcon /> : <EsOrderlyIcon />}\n {children}\n </Flex>\n );\n },\n },\n ];\n\n return (\n <DataTable\n bordered\n columns={columns}\n loading={props.isLoading}\n dataSource={data}\n emptyView={<AuthGuardEmpty status={AccountStatusEnum.SignedIn} />}\n onRow={(record) => {\n return {\n className: \"oui-h-[59px]\",\n };\n }}\n pagination={props.pagination}\n />\n );\n};\n\nfunction formatTimestamp(timestamp?: number) {\n if (typeof timestamp === \"undefined\")\n return {\n firstPart: \"-\",\n secondPart: \"\",\n };\n const date = new Date(timestamp);\n\n const monthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ];\n const month = monthNames[date.getUTCMonth()];\n const day = date.getUTCDate().toString().padStart(2, \"0\");\n const year = date.getUTCFullYear();\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const amPm = hours >= 12 ? \"PM\" : \"AM\";\n const formattedHours = (hours % 12).toString().padStart(2, \"0\");\n const formattedMinutes = minutes.toString().padStart(2, \"0\");\n\n // return `${month} ${day}, ${year}_${formattedHours}:${formattedMinutes} ${amPm}`;\n return {\n firstPart: `${month} ${day}, ${year}`,\n secondPart: `${formattedHours}:${formattedMinutes} ${amPm}`,\n };\n}\n","import { useMemo } from \"react\";\nimport {\n EpochInfoItem,\n useAccount,\n useAccountRewardsHistory,\n WalletRewardsItem,\n} from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { getTimestamp } from \"@orderly.network/utils\";\nimport { RewardsTooltipProps } from \"../curEpoch/rewardsTooltip\";\nimport { useTradingRewardsContext } from \"../provider\";\n\nexport type ListType = EpochInfoItem & {\n info?: WalletRewardsItem;\n state?: string;\n rewardsTooltip?: RewardsTooltipProps;\n};\n\nexport type RewardsHistoryReturns = ReturnType<typeof useRewardsHistoryScript>;\n\nexport const useRewardsHistoryScript = () => {\n const { account } = useAccount();\n const {\n epochList,\n walletRewardsHistory,\n totalOrderClaimedReward,\n brokerId,\n brokerName,\n } = useTradingRewardsContext();\n const epochInfos = epochList?.[0];\n const { isNotStared } = epochList?.[1];\n const [history] = walletRewardsHistory;\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const { data: accountHistory } = useAccountRewardsHistory(account.address);\n\n const data = useMemo(() => {\n if (isNotStared || disabledConnect) {\n return [];\n }\n const list = [...(epochInfos || [])];\n\n const combineData = list.map((e): ListType => {\n const id = e.epoch_id;\n const index = history?.rows.findIndex((info) => id === info.epoch_id);\n\n let rewardsTooltip: RewardsTooltipProps | undefined = undefined;\n\n if (index !== -1 && !wrongNetwork) {\n const info = history?.rows?.[index as number];\n const _findIndex = accountHistory?.findIndex((item: any) => {\n return item?.epoch_id === e.epoch_id;\n });\n\n if (\n accountHistory !== undefined &&\n _findIndex !== undefined &&\n _findIndex !== -1\n ) {\n // get broker\n const brokerList = accountHistory[_findIndex].broker;\n const curBrokerIndex = brokerList.findIndex(\n (item) => item.broker_id === brokerId,\n );\n const curBroker =\n curBrokerIndex !== -1 ? brokerList[curBrokerIndex] : undefined;\n const curRewards = curBroker?.r_account ?? 0;\n const otherRewards = Math.max(0, (info?.r_wallet ?? 0) - curRewards);\n rewardsTooltip = {\n brokerName,\n curRewards,\n otherRewards,\n };\n }\n return {\n ...e,\n info,\n rewardsTooltip,\n } as ListType;\n }\n return {\n ...e,\n } as ListType;\n });\n\n combineData.sort((a, b) => a.epoch_id - b.epoch_id); // asc\n let [claimedReward] = totalOrderClaimedReward;\n if (typeof claimedReward !== \"undefined\") {\n for (let i = 0; i < combineData.length; i++) {\n const element = combineData[i];\n if (typeof element?.info === \"undefined\") {\n element.state = \"Null\";\n continue;\n }\n const status = element.info?.reward_status;\n if (status === \"Confirmed\") {\n if (claimedReward - element.info?.r_wallet >= 0) {\n element.state = \"Claimed\";\n } else {\n element.state = \"Claimable\";\n }\n claimedReward -= element.info?.r_wallet;\n } else if (status === \"Pending\") {\n element.state = \"Processing\";\n }\n }\n }\n combineData.sort((a, b) => b.epoch_id - a.epoch_id);\n const curDate = getTimestamp();\n return combineData.filter((item) => item.end_time <= curDate);\n }, [\n history,\n epochInfos,\n totalOrderClaimedReward,\n isNotStared,\n wrongNetwork,\n accountHistory,\n disabledConnect,\n ]);\n\n const { pagination } = usePagination();\n\n return {\n data,\n originalData: data,\n pagination,\n isLoading: epochList[1].isLoading,\n };\n};\n","import React from \"react\";\nimport { useRewardsHistoryScript } from \"./rewardsHistory.script\";\nimport { RewardHistory } from \"./rewardsHistory.ui\";\n\nexport const RewardsHistoryWidget: React.FC = () => {\n const state = useRewardsHistoryScript();\n return <RewardHistory {...state} />;\n};\n","export { RewardHistory } from \"./rewardsHistory.ui\";\nexport { RewardsHistoryWidget } from \"./rewardsHistory.widget\";","\nexport * from \"./title\";\nexport * from \"./curEpoch\";\nexport * from \"./availableToClaim\";\nexport * from \"./stakeBooster\";\nexport * from \"./rewardHistory\";\nexport { TradingRewardsProvider} from \"./provider\";\nexport { HomePage } from \"./page\";\n","export { Title } from \"./title.ui\";\nexport { TitleWidget } from \"./title.widget\";\nexport type { TitleConfig } from \"./title.script\";","import React, { useMemo } from \"react\";\nimport { useTradingRewardsStatus, EpochStatus } from \"@orderly.network/hooks\";\nimport { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { TradingRewardsProvider } from \"./provider\";\nimport type { TitleConfig } from \"./title/title.script\";\n\nconst LazyTitleWidget = React.lazy(() =>\n import(\"./title/title.widget\").then((mod) => {\n return { default: mod.TitleWidget };\n }),\n);\n\nconst LazyCurEpochWidget = React.lazy(() =>\n import(\"./curEpoch\").then((mod) => {\n return { default: mod.CurEpochWidget };\n }),\n);\n\nconst LazyAvailableToClaimWidget = React.lazy(() =>\n import(\"./availableToClaim\").then((mod) => {\n return { default: mod.AvailableToClaimWidget };\n }),\n);\n\nconst LazyStakeBoosterWidget = React.lazy(() =>\n import(\"./stakeBooster\").then((mod) => {\n return { default: mod.StakeBoosterWidget };\n }),\n);\n\nconst LazyRewardsHistoryWidget = React.lazy(() =>\n import(\"./rewardHistory\").then((mod) => {\n return { default: mod.RewardsHistoryWidget };\n }),\n);\n\nconst StakeBooster: React.FC = () => {\n const { statusInfo } = useTradingRewardsStatus(false);\n const isStakeBoosterVisible = useMemo(() => {\n return statusInfo?.epochStatus === EpochStatus.active;\n }, [statusInfo?.epochStatus]);\n return isStakeBoosterVisible ? (\n <React.Suspense fallback={null}>\n <LazyStakeBoosterWidget />\n </React.Suspense>\n ) : null;\n};\n\nexport const HomePage: React.FC<{\n titleConfig?: TitleConfig;\n className?: string;\n showEpochPauseCountdown?: boolean;\n}> = (props) => {\n return (\n <TradingRewardsProvider\n titleConfig={props.titleConfig}\n showEpochPauseCountdown={props.showEpochPauseCountdown}\n >\n <Flex\n id=\"oui-tradingRewards-home-page\"\n className={cn(\"oui-h-lvw oui-w-full\", props.className)}\n direction={\"column\"}\n gap={4}\n >\n <React.Suspense fallback={null}>\n <LazyTitleWidget />\n </React.Suspense>\n <Flex className=\"oui-flex oui-size-full oui-flex-col oui-gap-4 2xl:oui-flex-row 2xl:oui-items-stretch\">\n <Box className=\"oui-w-full 2xl:oui-size-auto 2xl:oui-flex-1\">\n <React.Suspense fallback={null}>\n <LazyCurEpochWidget />\n </React.Suspense>\n </Box>\n <Flex className=\"oui-flex oui-w-full oui-flex-col oui-gap-4 lg:oui-flex-row 2xl:oui-flex-1 2xl:oui-flex-col\">\n <React.Suspense fallback={null}>\n <LazyAvailableToClaimWidget />\n </React.Suspense>\n <StakeBooster />\n </Flex>\n </Flex>\n <React.Suspense fallback={null}>\n <LazyRewardsHistoryWidget />\n </React.Suspense>\n </Flex>\n </TradingRewardsProvider>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\nimport type { SideBarProps } from \"@orderly.network/ui-scaffold\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport enum TradingRewardsLeftSidebarPath {\n Trading = \"/rewards/trading\",\n Affiliate = \"/rewards/affiliate\",\n}\n\nexport const useTradingRewardsLayoutScript = (props: {\n current?: string;\n}): SideBarProps & {\n hideSideBar: boolean;\n} => {\n const { t } = useTranslation();\n const [current, setCurrent] = useState(props.current || \"/rewards/affiliate\");\n\n useEffect(() => {\n if (props.current) setCurrent(props.current);\n }, [props.current]);\n\n const items = useMemo(() => {\n return [\n {\n name: t(\"common.trading\"),\n href: TradingRewardsLeftSidebarPath.Trading,\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 className=\"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]\"\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: TradingRewardsLeftSidebarPath.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 className=\"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]\"\n />\n </svg>\n ),\n },\n ];\n }, [t]);\n\n const hideSideBar = useMediaQuery(\"(max-width: 768px)\");\n\n return {\n items,\n current,\n hideSideBar,\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 React, { PropsWithChildren } from \"react\";\nimport omit from \"ramda/es/omit\";\nimport { cn } from \"@orderly.network/ui\";\nimport { Scaffold, SideBarProps } from \"@orderly.network/ui-scaffold\";\nimport { ScaffoldProps } from \"@orderly.network/ui-scaffold\";\n\nexport type TradingRewardsLayoutProps = ScaffoldProps & {\n hideSideBar?: boolean;\n items?: SideBarProps[\"items\"];\n};\n\nexport const TradingRewardsLayout: React.FC<\n PropsWithChildren<TradingRewardsLayoutProps>\n> = (props) => {\n const { children, classNames, ...rest } = props;\n return (\n <Scaffold\n leftSidebar={null}\n routerAdapter={props.routerAdapter}\n classNames={{\n ...classNames,\n content: classNames?.content,\n topNavbar: cn(\"oui-bg-base-9\", classNames?.topNavbar),\n leftSidebar: cn(\n \"oui-rounded-xl oui-bg-base-9\",\n \"oui-m-3 oui-p-4\",\n \"oui-border oui-border-line\",\n classNames?.leftSidebar,\n ),\n }}\n {...omit([\"leftSideProps\"], rest)}\n >\n {children}\n </Scaffold>\n );\n};\n\n// type LeftSidebarProps = SideBarProps & {\n// routerAdapter?: RouterAdapter;\n// };\n\n// const LeftSidebar: React.FC<LeftSidebarProps> = (props) => {\n// const { t } = useTranslation();\n// const { expanded, setExpand } = useScaffoldContext();\n// return (\n// <SideBar\n// title={t(\"tradingRewards.rewards\")}\n// {...props}\n// open={expanded}\n// onOpenChange={(open) => setExpand(open)}\n// onItemSelect={(a) => {\n// props.onItemSelect?.(a);\n// props.routerAdapter?.onRouteChange?.({\n// href: a.href || \"\",\n// name: a.name,\n// });\n// }}\n// />\n// );\n// };\n","import { FC, PropsWithChildren } from \"react\";\nimport { ScaffoldProps } from \"@orderly.network/ui-scaffold\";\nimport { useTradingRewardsLayoutScript } from \"./layout.script\";\nimport { TradingRewardsLayout } from \"./layout.ui\";\n\nexport const TradingRewardsLayoutWidget: FC<\n PropsWithChildren<ScaffoldProps>\n> = (props) => {\n const state = useTradingRewardsLayoutScript({\n current: props.leftSideProps?.current,\n });\n return (\n <TradingRewardsLayout {...state} {...props}>\n {props.children}\n </TradingRewardsLayout>\n );\n};\n"]}
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- .oui-absolute{position:absolute}.oui-relative{position:relative}.oui-left-0{left:0}.oui-right-0{right:0}.oui-top-0{top:0}.oui-m-3{margin:.75rem}.oui-mb-\[3px\]{margin-bottom:3px}.oui-mt-0{margin-top:0}.oui-mt-2{margin-top:.5rem}.oui-mt-3{margin-top:.75rem}.oui-flex{display:flex}.oui-size-full{height:100%;width:100%}.oui-h-5{height:1.25rem}.oui-h-\[20px\]{height:20px}.oui-h-\[59px\]{height:59px}.oui-h-full{height:100%}.oui-max-h-\[356px\]{max-height:356px}.oui-w-1\/4{width:25%}.oui-w-5{width:1.25rem}.oui-w-\[32px\]{width:32px}.oui-w-full{width:100%}.oui-min-w-\[204px\]{min-width:204px}.oui-flex-1{flex:1 1 0%}.oui-cursor-pointer{cursor:pointer}.oui-flex-col{flex-direction:column}.oui-items-center{align-items:center}.oui-gap-1{gap:.25rem}.oui-gap-4{gap:1rem}.oui-gap-\[2px\]{gap:2px}.oui-gap-\[6px\]{gap:6px}.oui-rounded-xl{border-radius:var(--oui-rounded-xl,.75rem)}.oui-rounded-t-2xl{border-top-left-radius:var(--oui-rounded-2xl,1rem);border-top-right-radius:var(--oui-rounded-2xl,1rem)}.oui-border{border-width:1px}.oui-border-t-2{border-top-width:2px}.oui-border-line{border-color:rgb(var(--oui-color-line,255 255 255)/.08)}.oui-border-line-4{border-color:rgb(var(--oui-color-line,255 255 255)/.04)}.oui-bg-base-5{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-5)/var(--tw-bg-opacity,1))}.oui-bg-base-8{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-8)/var(--tw-bg-opacity,1))}.oui-bg-base-9{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-9)/var(--tw-bg-opacity,1))}.oui-fill-base-5{fill:rgb(var(--oui-color-base-5)/1)}.oui-fill-base-contrast-36{fill:rgb(var(--oui-color-base-foreground)/.36)}.oui-fill-current{fill:currentColor}.oui-p-10{padding:2.5rem}.oui-p-4{padding:1rem}.oui-px-3{padding-left:.75rem;padding-right:.75rem}.oui-py-0{padding-bottom:0;padding-top:0}.oui-py-\[11px\]{padding-bottom:11px;padding-top:11px}.oui-py-\[13px\]{padding-bottom:13px;padding-top:13px}.oui-pl-0{padding-left:0}.oui-pr-0{padding-right:0}.oui-text-center{text-align:center}.oui-text-2xs{font-size:var(--oui-font-size-2xs,.75rem);line-height:1.125rem}.oui-text-base{font-size:var(--oui-font-size-base,1rem);line-height:1.5rem}.oui-text-lg{font-size:var(--oui-font-size-lg,1.125rem);line-height:1.625rem}.oui-text-sm{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.oui-text-xl{font-size:var(--oui-font-size-xl,1.25rem);line-height:1.75rem}.oui-text-xs{font-size:var(--oui-font-size-xs,calc(.875rem - 1px));line-height:1.25rem}.oui-font-normal{font-weight:400}.oui-font-semibold{font-weight:600}.oui-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oui-leading-\[1\.5\]{line-height:1.5}.oui-leading-\[20px\]{line-height:20px}.oui-text-base-contrast{color:rgb(var(--oui-color-base-foreground)/.98)}.oui-text-base-contrast-36{color:rgb(var(--oui-color-base-foreground)/.36)}.oui-text-base-contrast-54{color:rgb(var(--oui-color-base-foreground)/.54)}.oui-text-base-contrast-80{color:rgb(var(--oui-color-base-foreground)/.8)}.oui-text-primary-light{--tw-text-opacity:1;color:rgb(var(--oui-color-primary-light)/var(--tw-text-opacity,1))}.oui-underline{text-decoration-line:underline}.oui-decoration-line-16{text-decoration-color:rgb(var(--oui-color-line,255 255 255)/.16)}.oui-decoration-dashed{text-decoration-style:dashed}.oui-underline-offset-4{text-underline-offset:4px}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.hover\:oui-text-primary-darken:hover{--tw-text-opacity:1;color:rgb(var(--oui-color-primary-darken)/var(--tw-text-opacity,1))}.oui-group:hover .group-hover\:oui-fill-base-contrast-80{fill:rgb(var(--oui-color-base-foreground)/.8)}.oui-group:hover .group-hover\:oui-text-base-contrast-80{color:rgb(var(--oui-color-base-foreground)/.8)}.oui-group[data-actived=true] .group-data-\[actived\=true\]\:oui-fill-\[url\(\#side-menu-gradient\)\]{fill:url(#side-menu-gradient)}@media (min-width:480px){.md\:oui-h-6{height:1.5rem}.md\:oui-w-6{width:1.5rem}.md\:oui-text-2xl{font-size:var(--oui-font-size-2xl,1.5rem);line-height:2rem}.md\:oui-text-base{font-size:var(--oui-font-size-base,1rem);line-height:1.5rem}.md\:oui-text-lg{font-size:var(--oui-font-size-lg,1.125rem);line-height:1.625rem}.md\:oui-text-sm{font-size:var(--oui-font-size-sm,.875rem)}.md\:oui-text-sm,.md\:oui-text-xs{line-height:1.25rem}.md\:oui-text-xs{font-size:var(--oui-font-size-xs,calc(.875rem - 1px))}}@media (min-width:768px){.lg\:oui-h-7{height:1.75rem}.lg\:oui-w-7{width:1.75rem}.lg\:oui-flex-row{flex-direction:row}.lg\:oui-text-lg{font-size:var(--oui-font-size-lg,1.125rem);line-height:1.625rem}.lg\:oui-text-sm{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.lg\:oui-text-xl{font-size:var(--oui-font-size-xl,1.25rem);line-height:1.75rem}}@media (min-width:1024px){.xl\:oui-h-8{height:2rem}.xl\:oui-w-8{width:2rem}.xl\:oui-text-2xl{font-size:var(--oui-font-size-2xl,1.5rem);line-height:2rem}.xl\:oui-text-\[32px\]{font-size:32px}.xl\:oui-text-base{font-size:var(--oui-font-size-base,1rem);line-height:1.5rem}.xl\:oui-text-lg{font-size:var(--oui-font-size-lg,1.125rem);line-height:1.625rem}.xl\:oui-text-sm{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.xl\:oui-leading-\[24px\]{line-height:24px}}@media (min-width:1280px){.\32xl\:oui-size-auto{height:auto;width:auto}.\32xl\:oui-flex-1{flex:1 1 0%}.\32xl\:oui-flex-row{flex-direction:row}.\32xl\:oui-flex-col{flex-direction:column}.\32xl\:oui-items-stretch{align-items:stretch}}
1
+ .oui-absolute{position:absolute}.oui-relative{position:relative}.oui-left-0{left:0}.oui-right-0{right:0}.oui-top-0{top:0}.oui-m-3{margin:.75rem}.oui-mb-\[3px\]{margin-bottom:3px}.oui-mt-0{margin-top:0}.oui-mt-2{margin-top:.5rem}.oui-mt-3{margin-top:.75rem}.oui-flex{display:flex}.oui-size-full{width:100%;height:100%}.oui-h-5{height:1.25rem}.oui-h-\[20px\]{height:20px}.oui-h-\[59px\]{height:59px}.oui-h-full{height:100%}.oui-max-h-\[356px\]{max-height:356px}.oui-w-1\/4{width:25%}.oui-w-5{width:1.25rem}.oui-w-\[32px\]{width:32px}.oui-w-full{width:100%}.oui-min-w-\[204px\]{min-width:204px}.oui-flex-1{flex:1 1 0%}.oui-cursor-pointer{cursor:pointer}.oui-flex-col{flex-direction:column}.oui-items-center{align-items:center}.oui-gap-1{gap:.25rem}.oui-gap-4{gap:1rem}.oui-gap-\[2px\]{gap:2px}.oui-gap-\[6px\]{gap:6px}.oui-rounded-xl{border-radius:var(--oui-rounded-xl,.75rem)}.oui-rounded-t-2xl{border-top-left-radius:var(--oui-rounded-2xl,1rem);border-top-right-radius:var(--oui-rounded-2xl,1rem)}.oui-border{border-width:1px}.oui-border-t-2{border-top-width:2px}.oui-border-line{border-color:rgb(var(--oui-color-line,255 255 255)/.08)}.oui-border-line-4{border-color:rgb(var(--oui-color-line,255 255 255)/.04)}.oui-bg-base-5{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-5)/var(--tw-bg-opacity,1))}.oui-bg-base-8{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-8)/var(--tw-bg-opacity,1))}.oui-bg-base-9{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-9)/var(--tw-bg-opacity,1))}.oui-fill-base-5{fill:rgb(var(--oui-color-base-5)/1)}.oui-fill-base-contrast-36{fill:rgb(var(--oui-color-base-foreground)/.36)}.oui-fill-current{fill:currentColor}.oui-p-10{padding:2.5rem}.oui-p-4{padding:1rem}.oui-px-3{padding-left:.75rem;padding-right:.75rem}.oui-py-0{padding-top:0;padding-bottom:0}.oui-py-\[11px\]{padding-top:11px;padding-bottom:11px}.oui-py-\[13px\]{padding-top:13px;padding-bottom:13px}.oui-pl-0{padding-left:0}.oui-pr-0{padding-right:0}.oui-text-center{text-align:center}.oui-text-2xs{font-size:var(--oui-font-size-2xs,.75rem);line-height:1.125rem}.oui-text-base{font-size:var(--oui-font-size-base,1rem);line-height:1.5rem}.oui-text-lg{font-size:var(--oui-font-size-lg,1.125rem);line-height:1.625rem}.oui-text-sm{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.oui-text-xl{font-size:var(--oui-font-size-xl,1.25rem);line-height:1.75rem}.oui-text-xs{font-size:var(--oui-font-size-xs,calc(.875rem - 1px));line-height:1.25rem}.oui-font-normal{font-weight:400}.oui-font-semibold{font-weight:600}.oui-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oui-leading-\[1\.5\]{line-height:1.5}.oui-leading-\[20px\]{line-height:20px}.oui-text-base-contrast{color:rgb(var(--oui-color-base-foreground)/.98)}.oui-text-base-contrast-36{color:rgb(var(--oui-color-base-foreground)/.36)}.oui-text-base-contrast-54{color:rgb(var(--oui-color-base-foreground)/.54)}.oui-text-base-contrast-80{color:rgb(var(--oui-color-base-foreground)/.8)}.oui-text-primary-light{--tw-text-opacity:1;color:rgb(var(--oui-color-primary-light)/var(--tw-text-opacity,1))}.oui-underline{text-decoration-line:underline}.oui-decoration-line-16{text-decoration-color:rgb(var(--oui-color-line,255 255 255)/.16)}.oui-decoration-dashed{text-decoration-style:dashed}.oui-underline-offset-4{text-underline-offset:4px}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.hover\:oui-text-primary-darken:hover{--tw-text-opacity:1;color:rgb(var(--oui-color-primary-darken)/var(--tw-text-opacity,1))}.oui-group:hover .group-hover\:oui-fill-base-contrast-80{fill:rgb(var(--oui-color-base-foreground)/.8)}.oui-group:hover .group-hover\:oui-text-base-contrast-80{color:rgb(var(--oui-color-base-foreground)/.8)}.oui-group[data-actived=true] .group-data-\[actived\=true\]\:oui-fill-\[url\(\#side-menu-gradient\)\]{fill:url(#side-menu-gradient)}@media (min-width:480px){.md\:oui-h-6{height:1.5rem}.md\:oui-w-6{width:1.5rem}.md\:oui-text-2xl{font-size:var(--oui-font-size-2xl,1.5rem);line-height:2rem}.md\:oui-text-base{font-size:var(--oui-font-size-base,1rem);line-height:1.5rem}.md\:oui-text-lg{font-size:var(--oui-font-size-lg,1.125rem);line-height:1.625rem}.md\:oui-text-sm{font-size:var(--oui-font-size-sm,.875rem)}.md\:oui-text-sm,.md\:oui-text-xs{line-height:1.25rem}.md\:oui-text-xs{font-size:var(--oui-font-size-xs,calc(.875rem - 1px))}}@media (min-width:768px){.lg\:oui-h-7{height:1.75rem}.lg\:oui-w-7{width:1.75rem}.lg\:oui-flex-row{flex-direction:row}.lg\:oui-text-lg{font-size:var(--oui-font-size-lg,1.125rem);line-height:1.625rem}.lg\:oui-text-sm{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.lg\:oui-text-xl{font-size:var(--oui-font-size-xl,1.25rem);line-height:1.75rem}}@media (min-width:1024px){.xl\:oui-h-8{height:2rem}.xl\:oui-w-8{width:2rem}.xl\:oui-text-2xl{font-size:var(--oui-font-size-2xl,1.5rem);line-height:2rem}.xl\:oui-text-\[32px\]{font-size:32px}.xl\:oui-text-base{font-size:var(--oui-font-size-base,1rem);line-height:1.5rem}.xl\:oui-text-lg{font-size:var(--oui-font-size-lg,1.125rem);line-height:1.625rem}.xl\:oui-text-sm{font-size:var(--oui-font-size-sm,.875rem);line-height:1.25rem}.xl\:oui-leading-\[24px\]{line-height:24px}}@media (min-width:1280px){.\32xl\:oui-size-auto{width:auto;height:auto}.\32xl\:oui-flex-1{flex:1 1 0%}.\32xl\:oui-flex-row{flex-direction:row}.\32xl\:oui-flex-col{flex-direction:column}.\32xl\:oui-items-stretch{align-items:stretch}}