@orderly.network/trading-rewards 2.0.1-alpha.6 → 2.0.1-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +11 -11
package/dist/index.mjs.map
CHANGED
|
@@ -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/orderlyIcon.tsx","../src/pages/index/curEpoch/rewardsTooltip.tsx","../src/pages/index/components/esOrderlyIcon.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.ui.tsx","../src/layout/layout.script.tsx","../src/layout/layout.widget.tsx"],"names":["index_exports","__export","AvailableToClaim","AvailableToClaimWidget","CurEpoch","CurEpochWidget","HomePage","RewardHistory","RewardsHistoryWidget","StakeBooster","StakeBoosterWidget","Title","TitleWidget","TradingRewardsProvider","Divider","Flex","Text","jsx","jsxs","props","title","subtitle","content","docOpenOptions","MultiLineText","clickableParts","item","index","createContext","useContext","useMemo","TWType","useEpochInfo","useAllBrokers","useGetClaimed","DistributionId","useCurEpochEstimate","useWalletRewardsHistory","useConfig","TradingRewardsContext","brokerId","type","titleConfig","totalOrderClaimedReward","totalEsOrderClaimedReward","brokers","curEpochEstimate","walletRewardsHistory","epochList","brokerName","useTradingRewardsContext","useTitleScript","state","Box","cn","useState","useEffect","OrderlyIcon","commifyOptional","AccountStatusEnum","AuthGuard","Tooltip","React","RewardsTooltip","open","setOpen","e","EsOrderlyIcon","Fragment","curEpochInfo","startTime","endTime","curEpochId","max_reward_amount","token","isOrder","Countdown","Statics","getDate","EstRewards","highLight","text","targetTimestamp","timeLeft","setTimeLeft","intervalId","now","distance","days","hours","minutes","seconds","num","value","timestamp","date","month","day","useAccount","useWalletConnector","useAppContext","useCurEpochScript","estimate","wrongNetwork","connect","hideData","notConnected","rewardsTooltip","otherRewards","a","b","curRewards","ENVType","useGetEnv","useCallback","useDataTap","Decimal","ChainNamespace","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","DataTable","ListView","Pagination","useMediaQuery","AuthGuardEmpty","List","MobileCell","DesktopList","r_warret","formatTimestamp","record","children","year","amPm","formattedHours","formattedMinutes","useAccountRewardsHistory","usePagination","getTimestamp","useRewardsHistoryScript","account","epochInfos","isNotStared","history","accountHistory","combineData","id","info","_findIndex","brokerList","curBrokerIndex","i","element","status","curDate","page","pageSize","setPage","setPageSize","parseMeta","totalCount","onPageChange","onPageSizeChange","newData","startIndex","endIndex","meta","Scaffold","SideBar","useScaffoldContext","TradingRewardsLayout","rest","LeftSidebar","expanded","setExpand","useLayoutBuilder","current","setCurrent","items","hideSideBar","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\";\n\nexport const Title: FC<TitleConfig> = (props) => {\n const { title, subtitle, content, docOpenOptions } = props;\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\">Trading rewards</Text>}\n <Divider intensity={8} className=\"oui-w-full\" />\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={1}>\n {subtitle || (\n <Text size=\"base\">{`Trade with ${props.brokerName} to earn esORDER.`}</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 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 ? \"oui-text-primary-light hover:oui-text-primary-darken oui-cursor-pointer\" : \"\"\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 {renderText()}\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 { PropsWithChildren, createContext, useContext, useMemo } 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} from \"@orderly.network/hooks\";\nimport { 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};\n\nexport const TradingRewardsContext = createContext<TradingRewardsState>(\n {} as TradingRewardsState\n);\n\nexport const TradingRewardsProvider = (\n props: PropsWithChildren<{\n /** default is 'orderly' */\n // brokerId?: string;\n /** default is TWType.normal */\n type?: TWType;\n titleConfig?: TitleConfig;\n }>\n) => {\n // const { brokerId = \"orderly\" } = props;\n\n const brokerId = useConfig(\"brokerId\");\n\n const {\n type = TWType.normal,\n titleConfig = {\n docOpenOptions: {\n url: \"https://orderly.network/docs/introduction/tokenomics/trading-rewards\",\n target: \"_blank\",\n },\n },\n } = props;\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 as TWType);\n\n const brokerName = useMemo(() => {\n return brokers?.[brokerId];\n }, [brokerId, brokers]);\n\n return (\n <TradingRewardsContext.Provider\n value={{\n type: type as TWType,\n totalOrderClaimedReward,\n totalEsOrderClaimedReward,\n // totalOrderClaimedReward: 2000,\n // totalEsOrderClaimedReward: 0,\n epochList,\n curEpochEstimate,\n walletRewardsHistory,\n titleConfig,\n brokerId,\n brokerName,\n brokers,\n }}\n >\n {/* <PageLoading loading={epochList.data === undefined}> */}\n {props.children}\n {/* </PageLoading> */}\n </TradingRewardsContext.Provider>\n );\n};\n\nexport function useTradingRewardsContext() {\n return useContext(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}","import { Box, Button, Flex, Text, Tooltip, cn } from \"@orderly.network/ui\";\n\nimport { useState, useEffect, FC } from \"react\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { CurEpochReturns } from \"./curEpoch.script\";\nimport { commify, commifyOptional } from \"@orderly.network/utils\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\nimport { RewardsTooltip } from \"./rewardsTooltip\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\n\nexport const CurEpoch: FC<CurEpochReturns> = (props) => {\n const state = props;\n const curEpochInfo = state.epochList?.[1].curEpochInfo;\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 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=\"Epoch\"\n highLight={curEpochId ? `${curEpochId}` : \"--\"}\n text={\n startTime && endTime\n ? `${getDate(startTime)} - ${getDate(endTime)}`\n : \"\"\n }\n />\n <Statics\n title=\"Epoch rewards\"\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 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 My est. rewards\n </Text>\n <Flex direction={\"row\"} gap={3}>\n {props.isOrder == true && (<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 {props.isOrder == false && (<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 <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-text-2xs md:oui-text-xs xl:oui-text-sm oui-mb-[3px]\"\n >\n {text}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\nconst Countdown: FC<{\n targetTimestamp?: number;\n}> = ({ targetTimestamp }) => {\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);\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);\n }, [targetTimestamp]);\n\n const num = (value: string) => {\n return (\n <Text className=\"oui-text-base-contrast oui-text-sm 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-text-base-contrast-54 oui-font-semibold\"\n gradient=\"neutral\"\n angle={180}\n width={\"full\"}\n >\n <Flex justify={\"center\"} gap={1}>\n <span>Countdown:</span>\n <Flex\n direction={\"row\"}\n itemAlign={\"end\"}\n gap={1}\n className=\"oui-text-2xs md:oui-text-xs lg:oui-text-sm oui-py-[13px]\"\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 getDate = (timestamp?: number): string => {\n if (!timestamp) return \"\";\n const date = new Date(timestamp);\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","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 { Flex, Text, Tooltip } from \"@orderly.network/ui\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport React, { FC } from \"react\";\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] = React.useState(false);\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\">Other Orderly DEX</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","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","import {\n CurrentEpochEstimate,\n EpochInfoType,\n useAccount,\n useCurEpochEstimate,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { useTradingRewardsContext } from \"../provider\";\nimport { useMemo } from \"react\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { RewardsTooltipProps } from \"./rewardsTooltip\";\n\nexport const useCurEpochScript = () => {\n const {\n epochList,\n curEpochEstimate: estimate,\n brokerId,\n brokerName,\n } = useTradingRewardsContext();\n const { wrongNetwork } = useAppContext();\n const { connect } = useWalletConnector();\n const { state } = useAccount();\n\n const hideData = useMemo(() => {\n return state.status <= AccountStatusEnum.SignedIn || wrongNetwork;\n }, [state, wrongNetwork]);\n\n const notConnected = useMemo(() => {\n return state.status <= AccountStatusEnum.SignedIn;\n }, [state]);\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 };\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 {\n ENVType,\n useGetEnv,\n useWalletConnector,\n useWalletRewardsHistory,\n} from \"@orderly.network/hooks\";\nimport { useTradingRewardsContext } from \"../provider\";\nimport { useCallback, useMemo } from \"react\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { ChainNamespace } from \"@orderly.network/types\";\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 { commify, commifyOptional } from \"@orderly.network/utils\";\n\nexport const AvailableToClaim: FC<AvailableReturns> = (props) => {\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\">Available to claim</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\">\n Claim\n </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\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 { Flex, Text } from \"@orderly.network/ui\";\nimport { JumpIcon } from \"../components/jumpIcon\";\nimport { FC, ReactNode, useMemo } from \"react\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { RocketIcon } from \"../components/rocket\";\nimport { StakeBoosterReturns } from \"./stakeBooster.script\";\nimport { Decimal, commify, commifyOptional } from \"@orderly.network/utils\";\n\nexport const StakeBooster: FC<StakeBoosterReturns> = (props) => {\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\">Stake booster</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\">Stake</Text>\n <JumpIcon />\n </Flex>\n </Flex>\n <Flex direction={\"row\"} gap={3} width={\"100%\"}>\n <Statics\n title=\"Avg. staked amount\"\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=\"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=\"#59B0FE\" />\n <stop offset=\"1\" stopColor=\"#26FEFE\" />\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 {\n Box,\n Column,\n DataTable,\n Divider,\n Flex,\n ListView,\n Pagination,\n Text,\n} from \"@orderly.network/ui\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { ListType, RewardsHistoryReturns } from \"./rewardsHistory.script\";\nimport { FC } from \"react\";\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\";\n\nexport const RewardHistory: FC<RewardsHistoryReturns> = (props) => {\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\">Reward history</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 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 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\">Epoch</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 Epoch rewards{\" \"}\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 Rewards earned{\" \"}\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\">Start</Text>\n <Flex direction={\"row\"}>\n <Text className=\"oui-text-sm\">\n {formatTimestamp(data.start_time).firstPart} \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 End date\n </Text>\n <Flex direction={\"row\"}>\n <Text className=\"oui-text-sm\">\n {formatTimestamp(data.end_time).firstPart} \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 columns: Column<ListType>[] = [\n {\n title: \"Epoch\",\n dataIndex: \"epoch_id\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value) => {\n return <Text>{`Epoch ${value}`}</Text>;\n },\n },\n {\n title: \"Start / End date\",\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: \"Epoch rewards\",\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: \"Rewards earned\",\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<ListType>\n bordered\n columns={columns}\n loading={props.isLoading}\n dataSource={data}\n classNames={{\n header: \"oui-text-base-contrast-36 oui-bg-base-9\",\n body: \"oui-text-base-contrast-80\",\n }}\n emptyView={<AuthGuardEmpty status={AccountStatusEnum.SignedIn} />}\n >\n <Pagination\n {...props.meta}\n onPageChange={props.onPageChange}\n onPageSizeChange={props.onPageSizeChange}\n />\n </DataTable>\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 { useTradingRewardsContext } from \"../provider\";\nimport {\n EpochInfoItem,\n useAccount,\n useAccountRewardsHistory,\n WalletRewardsItem,\n} from \"@orderly.network/hooks\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { RewardsTooltipProps } from \"../curEpoch/rewardsTooltip\";\nimport { getTimestamp } from \"@orderly.network/utils\";\n\nexport type ListType = EpochInfoItem & {\n info?: WalletRewardsItem;\n state?: string;\n rewardsTooltip?: RewardsTooltipProps;\n};\n\nexport type RewardsHistoryReturns = {\n data: ListType[];\n originalData: ListType[];\n meta: {\n count: number;\n page: number;\n pageSize: number;\n pageTotal: number;\n };\n onPageChange: (page: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n isLoading: boolean;\n};\n\nexport const useRewardsHistoryScript = (): RewardsHistoryReturns => {\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 } = useAppContext();\n\n const { data: accountHistory } = useAccountRewardsHistory(account.address);\n\n const data = useMemo(() => {\n if (isNotStared) return [];\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 ]);\n\n const { page, pageSize, setPage, setPageSize, parseMeta } = usePagination();\n\n const totalCount = useMemo(() => data.length, [data]);\n const onPageChange = (page: number) => {\n setPage(page);\n };\n\n const onPageSizeChange = (pageSize: number) => {\n setPageSize(pageSize);\n };\n\n const newData = useMemo(() => {\n const startIndex = (page - 1) * pageSize;\n const endIndex = startIndex + pageSize;\n return data.slice(startIndex, endIndex);\n }, [data, page, pageSize]);\n\n const meta = parseMeta({\n total: totalCount,\n current_page: page,\n records_per_page: pageSize,\n });\n\n return {\n data: newData,\n originalData: data,\n meta: meta,\n onPageChange,\n onPageSizeChange,\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 { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { TitleWidget } from \"./title/title.widget\";\nimport { CurEpochWidget } from \"./curEpoch\";\nimport { AvailableToClaimWidget } from \"./availableToClaim\";\nimport { StakeBoosterWidget } from \"./stakeBooster\";\nimport { RewardsHistoryWidget } from \"./rewardHistory\";\nimport { TradingRewardsProvider } from \"./provider\";\nimport { FC } from \"react\";\nimport { TitleConfig } from \"./title/title.script\";\n\nexport const HomePage: FC<{\n titleConfig?: TitleConfig;\n className?: string;\n}> = (props) => {\n return (\n <TradingRewardsProvider titleConfig={props.titleConfig}>\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-flex-col 2xl:oui-flex-row 2xl:oui-items-stretch oui-gap-4 oui-w-full oui-h-full\">\n <Box className=\"2xl:oui-flex-1 2xl:oui-h-auto oui-w-full 2xl:oui-w-auto\">\n <CurEpochWidget />\n </Box>\n <Flex className=\"2xl:oui-flex-1 oui-flex oui-flex-col lg:oui-flex-row oui-gap-4 2xl:oui-flex-col oui-w-full\">\n <AvailableToClaimWidget />\n <StakeBoosterWidget />\n </Flex>\n </Flex>\n <RewardsHistoryWidget />\n </Flex>\n </TradingRewardsProvider>\n );\n};\n","import {\n Box,\n cn,\n ExtensionPositionEnum,\n ExtensionSlot,\n} from \"@orderly.network/ui\";\nimport { LayoutProvider } from \"./context\";\nimport {\n Scaffold,\n SideBar,\n SideBarProps,\n SideMenuItem,\n useScaffoldContext,\n} from \"@orderly.network/ui-scaffold\";\nimport { PropsWithChildren } from \"react\";\nimport { LayoutProps } from \"@orderly.network/ui-scaffold\";\n\nexport type TradingRewardsLayoutProps = {\n hideSideBar?: boolean;\n} & SideBarProps &\n LayoutProps;\n\nexport const TradingRewardsLayout = (\n props: PropsWithChildren<TradingRewardsLayoutProps>\n) => {\n const { children, ...rest } = props;\n\n return (\n <Scaffold\n classNames={{\n content: \"lg:oui-mb-0\",\n topNavbar: \"oui-bg-base-9\",\n leftSidebar:\n \"oui-m-3 oui-p-4 oui-border oui-border-[1px] oui-border-line oui-rounded-xl oui-bg-base-9\",\n }}\n leftSidebar={props.hideSideBar ? null : <LeftSidebar {...rest} />}\n routerAdapter={props.routerAdapter}\n {...props}\n >\n <Box className=\"oui-flex oui-justify-center\">{props.children}</Box>\n </Scaffold>\n );\n};\nconst LeftSidebar = (props: SideBarProps & LayoutProps) => {\n const { expanded, setExpand } = useScaffoldContext();\n\n return (\n <SideBar\n title={\"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 { useMediaQuery } from \"@orderly.network/hooks\";\nimport type { SideBarProps } from \"@orderly.network/ui-scaffold\";\nimport React, { useEffect } from \"react\";\nimport { useMemo, useState } from \"react\";\n\nexport const useLayoutBuilder = (props: {\n current?: string;\n}): SideBarProps & {\n hideSideBar: boolean;\n} => {\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: \"Trading\",\n href: \"/rewards/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=\"#59B0FE\" />\n <stop offset=\"1\" stopColor=\"#26FEFE\" />\n </linearGradient>\n </defs>\n </svg>\n ),\n },\n {\n name: \"Affiliate\",\n href: \"/rewards/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 }, []);\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 { FC, PropsWithChildren } from \"react\";\nimport { TradingRewardsLayout } from \"./layout.ui\";\nimport { useLayoutBuilder } from \"./layout.script\";\nimport { LayoutProps, SideBarProps, SideMenuItem } from \"@orderly.network/ui-scaffold\";\n\nexport const TradingRewardsLayoutWidget: FC<PropsWithChildren<LayoutProps>> = (props) => { \n const state = useLayoutBuilder({\n current: props.leftSideProps?.current\n });\n return <TradingRewardsLayout {...state} {...props} children={props.children} />;\n};\n"]}
|
|
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/orderlyIcon.tsx","../src/pages/index/curEpoch/rewardsTooltip.tsx","../src/pages/index/components/esOrderlyIcon.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.ui.tsx","../src/layout/layout.script.tsx","../src/layout/layout.widget.tsx"],"names":["index_exports","__export","AvailableToClaim","AvailableToClaimWidget","CurEpoch","CurEpochWidget","HomePage","RewardHistory","RewardsHistoryWidget","StakeBooster","StakeBoosterWidget","Title","TitleWidget","TradingRewardsProvider","Divider","Flex","Text","jsx","jsxs","props","title","subtitle","content","docOpenOptions","MultiLineText","clickableParts","item","index","createContext","useContext","useMemo","TWType","useEpochInfo","useAllBrokers","useGetClaimed","DistributionId","useCurEpochEstimate","useWalletRewardsHistory","useConfig","TradingRewardsContext","brokerId","type","titleConfig","totalOrderClaimedReward","totalEsOrderClaimedReward","brokers","curEpochEstimate","walletRewardsHistory","epochList","brokerName","useTradingRewardsContext","useTitleScript","state","Box","cn","useState","useEffect","OrderlyIcon","commifyOptional","AccountStatusEnum","AuthGuard","Tooltip","React","RewardsTooltip","open","setOpen","e","EsOrderlyIcon","Fragment","curEpochInfo","startTime","endTime","curEpochId","max_reward_amount","token","isOrder","Countdown","Statics","getDate","EstRewards","highLight","text","targetTimestamp","timeLeft","setTimeLeft","intervalId","now","distance","days","hours","minutes","seconds","num","value","timestamp","date","month","day","useAccount","useWalletConnector","useAppContext","useCurEpochScript","estimate","wrongNetwork","connect","hideData","notConnected","rewardsTooltip","otherRewards","a","b","curRewards","ENVType","useGetEnv","useCallback","useDataTap","Decimal","ChainNamespace","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","MobileCell","DesktopList","r_warret","formatTimestamp","record","children","year","amPm","formattedHours","formattedMinutes","useAccountRewardsHistory","usePagination","getTimestamp","useRewardsHistoryScript","account","epochInfos","isNotStared","history","accountHistory","combineData","id","info","_findIndex","brokerList","curBrokerIndex","i","element","status","curDate","pagination","Scaffold","SideBar","useScaffoldContext","TradingRewardsLayout","rest","LeftSidebar","expanded","setExpand","useLayoutBuilder","current","setCurrent","items","hideSideBar","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\";\n\nexport const Title: FC<TitleConfig> = (props) => {\n const { title, subtitle, content, docOpenOptions } = props;\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\">Trading rewards</Text>}\n <Divider intensity={8} className=\"oui-w-full\" />\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={1}>\n {subtitle || (\n <Text size=\"base\">{`Trade with ${props.brokerName} to earn esORDER.`}</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 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 ? \"oui-text-primary-light hover:oui-text-primary-darken oui-cursor-pointer\" : \"\"\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 {renderText()}\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 { PropsWithChildren, createContext, useContext, useMemo } 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} from \"@orderly.network/hooks\";\nimport { 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};\n\nexport const TradingRewardsContext = createContext<TradingRewardsState>(\n {} as TradingRewardsState\n);\n\nexport const TradingRewardsProvider = (\n props: PropsWithChildren<{\n /** default is 'orderly' */\n // brokerId?: string;\n /** default is TWType.normal */\n type?: TWType;\n titleConfig?: TitleConfig;\n }>\n) => {\n // const { brokerId = \"orderly\" } = props;\n\n const brokerId = useConfig(\"brokerId\");\n\n const {\n type = TWType.normal,\n titleConfig = {\n docOpenOptions: {\n url: \"https://orderly.network/docs/introduction/tokenomics/trading-rewards\",\n target: \"_blank\",\n },\n },\n } = props;\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 as TWType);\n\n const brokerName = useMemo(() => {\n return brokers?.[brokerId];\n }, [brokerId, brokers]);\n\n return (\n <TradingRewardsContext.Provider\n value={{\n type: type as TWType,\n totalOrderClaimedReward,\n totalEsOrderClaimedReward,\n // totalOrderClaimedReward: 2000,\n // totalEsOrderClaimedReward: 0,\n epochList,\n curEpochEstimate,\n walletRewardsHistory,\n titleConfig,\n brokerId,\n brokerName,\n brokers,\n }}\n >\n {/* <PageLoading loading={epochList.data === undefined}> */}\n {props.children}\n {/* </PageLoading> */}\n </TradingRewardsContext.Provider>\n );\n};\n\nexport function useTradingRewardsContext() {\n return useContext(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}","import { Box, Button, Flex, Text, Tooltip, cn } from \"@orderly.network/ui\";\n\nimport { useState, useEffect, FC } from \"react\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { CurEpochReturns } from \"./curEpoch.script\";\nimport { commify, commifyOptional } from \"@orderly.network/utils\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\nimport { RewardsTooltip } from \"./rewardsTooltip\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\n\nexport const CurEpoch: FC<CurEpochReturns> = (props) => {\n const state = props;\n const curEpochInfo = state.epochList?.[1].curEpochInfo;\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 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=\"Epoch\"\n highLight={curEpochId ? `${curEpochId}` : \"--\"}\n text={\n startTime && endTime\n ? `${getDate(startTime)} - ${getDate(endTime)}`\n : \"\"\n }\n />\n <Statics\n title=\"Epoch rewards\"\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 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 My est. rewards\n </Text>\n <Flex direction={\"row\"} gap={3}>\n {props.isOrder == true && (<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 {props.isOrder == false && (<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 <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-text-2xs md:oui-text-xs xl:oui-text-sm oui-mb-[3px]\"\n >\n {text}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\nconst Countdown: FC<{\n targetTimestamp?: number;\n}> = ({ targetTimestamp }) => {\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);\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);\n }, [targetTimestamp]);\n\n const num = (value: string) => {\n return (\n <Text className=\"oui-text-base-contrast oui-text-sm 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-text-base-contrast-54 oui-font-semibold\"\n gradient=\"neutral\"\n angle={180}\n width={\"full\"}\n >\n <Flex justify={\"center\"} gap={1}>\n <span>Countdown:</span>\n <Flex\n direction={\"row\"}\n itemAlign={\"end\"}\n gap={1}\n className=\"oui-text-2xs md:oui-text-xs lg:oui-text-sm oui-py-[13px]\"\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 getDate = (timestamp?: number): string => {\n if (!timestamp) return \"\";\n const date = new Date(timestamp);\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","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 { Flex, Text, Tooltip } from \"@orderly.network/ui\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport React, { FC } from \"react\";\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] = React.useState(false);\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\">Other Orderly DEX</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","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","import {\n CurrentEpochEstimate,\n EpochInfoType,\n useAccount,\n useCurEpochEstimate,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { useTradingRewardsContext } from \"../provider\";\nimport { useMemo } from \"react\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { RewardsTooltipProps } from \"./rewardsTooltip\";\n\nexport const useCurEpochScript = () => {\n const {\n epochList,\n curEpochEstimate: estimate,\n brokerId,\n brokerName,\n } = useTradingRewardsContext();\n const { wrongNetwork } = useAppContext();\n const { connect } = useWalletConnector();\n const { state } = useAccount();\n\n const hideData = useMemo(() => {\n return state.status <= AccountStatusEnum.SignedIn || wrongNetwork;\n }, [state, wrongNetwork]);\n\n const notConnected = useMemo(() => {\n return state.status <= AccountStatusEnum.SignedIn;\n }, [state]);\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 };\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 {\n ENVType,\n useGetEnv,\n useWalletConnector,\n useWalletRewardsHistory,\n} from \"@orderly.network/hooks\";\nimport { useTradingRewardsContext } from \"../provider\";\nimport { useCallback, useMemo } from \"react\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { ChainNamespace } from \"@orderly.network/types\";\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 { commify, commifyOptional } from \"@orderly.network/utils\";\n\nexport const AvailableToClaim: FC<AvailableReturns> = (props) => {\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\">Available to claim</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\">\n Claim\n </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\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 { Flex, Text } from \"@orderly.network/ui\";\nimport { JumpIcon } from \"../components/jumpIcon\";\nimport { FC, ReactNode, useMemo } from \"react\";\nimport { EsOrderlyIcon } from \"../components/esOrderlyIcon\";\nimport { OrderlyIcon } from \"../components/orderlyIcon\";\nimport { RocketIcon } from \"../components/rocket\";\nimport { StakeBoosterReturns } from \"./stakeBooster.script\";\nimport { Decimal, commify, commifyOptional } from \"@orderly.network/utils\";\n\nexport const StakeBooster: FC<StakeBoosterReturns> = (props) => {\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\">Stake booster</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\">Stake</Text>\n <JumpIcon />\n </Flex>\n </Flex>\n <Flex direction={\"row\"} gap={3} width={\"100%\"}>\n <Statics\n title=\"Avg. staked amount\"\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=\"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 {\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 { FC } from \"react\";\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\";\n\nexport const RewardHistory: FC<RewardsHistoryReturns> = (props) => {\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\">Reward history</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 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 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\">Epoch</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 Epoch rewards{\" \"}\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 Rewards earned{\" \"}\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\">Start</Text>\n <Flex direction={\"row\"}>\n <Text className=\"oui-text-sm\">\n {formatTimestamp(data.start_time).firstPart} \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 End date\n </Text>\n <Flex direction={\"row\"}>\n <Text className=\"oui-text-sm\">\n {formatTimestamp(data.end_time).firstPart} \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 columns: Column<ListType>[] = [\n {\n title: \"Epoch\",\n dataIndex: \"epoch_id\",\n className: \"oui-w-1/4 oui-pl-0 oui-pr-0\",\n render: (value) => {\n return <Text>{`Epoch ${value}`}</Text>;\n },\n },\n {\n title: \"Start / End date\",\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: \"Epoch rewards\",\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: \"Rewards earned\",\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 { useTradingRewardsContext } from \"../provider\";\nimport {\n EpochInfoItem,\n useAccount,\n useAccountRewardsHistory,\n WalletRewardsItem,\n} from \"@orderly.network/hooks\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { RewardsTooltipProps } from \"../curEpoch/rewardsTooltip\";\nimport { getTimestamp } from \"@orderly.network/utils\";\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 } = useAppContext();\n\n const { data: accountHistory } = useAccountRewardsHistory(account.address);\n\n const data = useMemo(() => {\n if (isNotStared) return [];\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 ]);\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 { Flex, Box, cn } from \"@orderly.network/ui\";\nimport { TitleWidget } from \"./title/title.widget\";\nimport { CurEpochWidget } from \"./curEpoch\";\nimport { AvailableToClaimWidget } from \"./availableToClaim\";\nimport { StakeBoosterWidget } from \"./stakeBooster\";\nimport { RewardsHistoryWidget } from \"./rewardHistory\";\nimport { TradingRewardsProvider } from \"./provider\";\nimport { FC } from \"react\";\nimport { TitleConfig } from \"./title/title.script\";\n\nexport const HomePage: FC<{\n titleConfig?: TitleConfig;\n className?: string;\n}> = (props) => {\n return (\n <TradingRewardsProvider titleConfig={props.titleConfig}>\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-flex-col 2xl:oui-flex-row 2xl:oui-items-stretch oui-gap-4 oui-w-full oui-h-full\">\n <Box className=\"2xl:oui-flex-1 2xl:oui-h-auto oui-w-full 2xl:oui-w-auto\">\n <CurEpochWidget />\n </Box>\n <Flex className=\"2xl:oui-flex-1 oui-flex oui-flex-col lg:oui-flex-row oui-gap-4 2xl:oui-flex-col oui-w-full\">\n <AvailableToClaimWidget />\n <StakeBoosterWidget />\n </Flex>\n </Flex>\n <RewardsHistoryWidget />\n </Flex>\n </TradingRewardsProvider>\n );\n};\n","import {\n Box,\n cn,\n ExtensionPositionEnum,\n ExtensionSlot,\n} from \"@orderly.network/ui\";\nimport { LayoutProvider } from \"./context\";\nimport {\n Scaffold,\n SideBar,\n SideBarProps,\n SideMenuItem,\n useScaffoldContext,\n} from \"@orderly.network/ui-scaffold\";\nimport { PropsWithChildren } from \"react\";\nimport { LayoutProps } from \"@orderly.network/ui-scaffold\";\n\nexport type TradingRewardsLayoutProps = {\n hideSideBar?: boolean;\n} & SideBarProps &\n LayoutProps;\n\nexport const TradingRewardsLayout = (\n props: PropsWithChildren<TradingRewardsLayoutProps>\n) => {\n const { children, ...rest } = props;\n\n return (\n <Scaffold\n classNames={{\n content: \"lg:oui-mb-0\",\n topNavbar: \"oui-bg-base-9\",\n leftSidebar:\n \"oui-m-3 oui-p-4 oui-border oui-border-[1px] oui-border-line oui-rounded-xl oui-bg-base-9\",\n }}\n leftSidebar={props.hideSideBar ? null : <LeftSidebar {...rest} />}\n routerAdapter={props.routerAdapter}\n {...props}\n >\n <Box className=\"oui-flex oui-justify-center\">{props.children}</Box>\n </Scaffold>\n );\n};\nconst LeftSidebar = (props: SideBarProps & LayoutProps) => {\n const { expanded, setExpand } = useScaffoldContext();\n\n return (\n <SideBar\n title={\"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 { useMediaQuery } from \"@orderly.network/hooks\";\nimport type { SideBarProps } from \"@orderly.network/ui-scaffold\";\nimport React, { useEffect } from \"react\";\nimport { useMemo, useState } from \"react\";\n\nexport const useLayoutBuilder = (props: {\n current?: string;\n}): SideBarProps & {\n hideSideBar: boolean;\n} => {\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: \"Trading\",\n href: \"/rewards/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: \"Affiliate\",\n href: \"/rewards/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 }, []);\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 { FC, PropsWithChildren } from \"react\";\nimport { TradingRewardsLayout } from \"./layout.ui\";\nimport { useLayoutBuilder } from \"./layout.script\";\nimport { LayoutProps, SideBarProps, SideMenuItem } from \"@orderly.network/ui-scaffold\";\n\nexport const TradingRewardsLayoutWidget: FC<PropsWithChildren<LayoutProps>> = (props) => { \n const state = useLayoutBuilder({\n current: props.leftSideProps?.current\n });\n return <TradingRewardsLayout {...state} {...props} children={props.children} />;\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-3{margin-top:.75rem}.oui-flex{display:flex}.oui-h-5{height:1.25rem}.oui-h-\[20px\]{height:20px}.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-justify-center{justify-content: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:.75rem}.oui-rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.oui-border,.oui-border-\[1px\]{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))}.oui-bg-base-8{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-8)/var(--tw-bg-opacity))}.oui-bg-base-9{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-9)/var(--tw-bg-opacity))}.oui-fill-base-5{fill:rgb(var(--oui-color-base-5)/1)}.oui-fill-current{fill:currentColor}.oui-p-4{padding:1rem}.oui-px-3{padding-left:.75rem;padding-right:.75rem}.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-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))}.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))}.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-mb-0{margin-bottom:0}.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-h-auto{height:auto}.\32xl\:oui-w-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-3{margin-top:.75rem}.oui-flex{display:flex}.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-justify-center{justify-content: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:.75rem}.oui-rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.oui-border,.oui-border-\[1px\]{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))}.oui-bg-base-8{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-8)/var(--tw-bg-opacity))}.oui-bg-base-9{--tw-bg-opacity:1;background-color:rgb(var(--oui-color-base-9)/var(--tw-bg-opacity))}.oui-fill-base-5{fill:rgb(var(--oui-color-base-5)/1)}.oui-fill-current{fill:currentColor}.oui-p-4{padding:1rem}.oui-px-3{padding-left:.75rem;padding-right:.75rem}.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-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))}.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))}.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-mb-0{margin-bottom:0}.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-h-auto{height:auto}.\32xl\:oui-w-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}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orderly.network/trading-rewards",
|
|
3
|
-
"version": "2.0.1-alpha.
|
|
3
|
+
"version": "2.0.1-alpha.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -14,18 +14,18 @@
|
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"date-fns": "^3.6.0",
|
|
17
|
-
"@orderly.network/ui": "2.0.1-alpha.
|
|
18
|
-
"@orderly.network/
|
|
19
|
-
"@orderly.network/
|
|
20
|
-
"@orderly.network/
|
|
21
|
-
"@orderly.network/
|
|
22
|
-
"@orderly.network/ui-connector": "2.0.1-alpha.
|
|
23
|
-
"@orderly.network/
|
|
17
|
+
"@orderly.network/ui": "2.0.1-alpha.7",
|
|
18
|
+
"@orderly.network/types": "2.0.1-alpha.7",
|
|
19
|
+
"@orderly.network/hooks": "2.0.1-alpha.7",
|
|
20
|
+
"@orderly.network/ui-scaffold": "2.0.1-alpha.7",
|
|
21
|
+
"@orderly.network/utils": "2.0.1-alpha.7",
|
|
22
|
+
"@orderly.network/ui-connector": "2.0.1-alpha.7",
|
|
23
|
+
"@orderly.network/react-app": "2.0.1-alpha.7"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/react": "^18.3.2",
|
|
27
27
|
"@types/react-dom": "^18.3.0",
|
|
28
|
-
"react": "^18.
|
|
28
|
+
"react": "^18.2.0",
|
|
29
29
|
"react-dom": "^18.2.0",
|
|
30
30
|
"tailwindcss": "^3.4.4",
|
|
31
31
|
"tsup": "^7.1.0",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"tsconfig": "0.3.17"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"react": "
|
|
37
|
-
"react-dom": "
|
|
36
|
+
"react": ">=18",
|
|
37
|
+
"react-dom": ">=18"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "tsup && pnpm run build:css",
|