@ape.swap/bonds-sdk 3.3.0-test.4 → 3.3.0-test.5
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/components/ChainOptionList/ChainOptionsList.js +0 -1
- package/dist/components/ChainOptionList/ChainOptionsList.js.map +1 -1
- package/dist/components/PlaceholderMonkey/index.js +1 -1
- package/dist/components/PlaceholderMonkey/index.js.map +1 -1
- package/dist/components/SlippageModal/index.js +0 -1
- package/dist/components/SlippageModal/index.js.map +1 -1
- package/dist/components/TokenSelectorModal/index.js +0 -1
- package/dist/components/TokenSelectorModal/index.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/Icons/Timer.js +1 -1
- package/dist/components/uikit-sdk/Svg/Icons/Timer.js.map +1 -1
- package/dist/utils/formatNumbers.d.ts +0 -1
- package/dist/utils/formatNumbers.js +19 -13
- package/dist/utils/formatNumbers.js.map +1 -1
- package/dist/utils/numbers.d.ts +0 -4
- package/dist/utils/numbers.js +0 -2
- package/dist/utils/numbers.js.map +1 -1
- package/dist/views/Bonds/components/BondsMenu/BondsMenu.js +0 -1
- package/dist/views/Bonds/components/BondsMenu/BondsMenu.js.map +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js.map +1 -1
- package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js +0 -1
- package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js.map +1 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js +0 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -1
- package/package.json +6 -7
|
@@ -4,7 +4,6 @@ import { styles } from './styles.js';
|
|
|
4
4
|
import Flex from '../uikit-sdk/Flex/index.js';
|
|
5
5
|
import Svg from '../uikit-sdk/Svg/index.js';
|
|
6
6
|
import Text from '../uikit-sdk/Text/index.js';
|
|
7
|
-
import 'numbro';
|
|
8
7
|
import Input from '../uikit-sdk/Input/Input.js';
|
|
9
8
|
import { formatChainList } from './constants.js';
|
|
10
9
|
import { NETWORK_ICONS } from '../../config/constants/chains.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainOptionsList.js","sources":["../../../src/components/ChainOptionList/ChainOptionsList.tsx"],"sourcesContent":["// Components\nimport { ChangeEvent, useCallback, useState } from 'react'\nimport { styles } from './styles'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport Flex from '../uikit-sdk/Flex'\nimport Svg from '../uikit-sdk/Svg'\nimport Text from '../uikit-sdk/Text'\nimport { Input } from '../uikit-sdk/Input'\nimport { formatChainList } from './constants'\nimport { NETWORK_ICONS } from '../../config/constants/chains'\n\nconst ChainOptionsList = ({\n setSelectedChain,\n setViewAllChains,\n chainList,\n}: {\n setSelectedChain: (chain: ChainId) => void\n setViewAllChains: (viewAllChains: boolean) => void\n chainList: ChainId[]\n}) => {\n const [searchQuery, setSearchQuery] = useState<string>('')\n\n const handleChainSelect = (chain: ChainId) => {\n setSelectedChain(chain)\n setViewAllChains(false)\n }\n\n const handleInput = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n const input = event.target.value\n setSearchQuery(input)\n }, [])\n\n return (\n <Flex sx={styles.searchAndListContainer}>\n <Flex sx={{ position: 'relative', flexDirection: 'column', height: '100%' }}>\n <Flex>\n <Input onChange={handleInput} sx={styles.searchInput} placeholder=\"Search by chain name\" />\n <Flex sx={{ position: 'absolute', right: '10px', top: '12px' }}>\n <Svg icon=\"search\" />\n </Flex>\n </Flex>\n <Flex sx={styles.chainListContainer}>\n {formatChainList(chainList)\n .filter((chainInfo) => chainInfo.name.toLowerCase().includes(searchQuery.toLowerCase()))\n .map((chainInfo) => {\n return (\n <Flex\n sx={styles.chainOptionList}\n onClick={() => handleChainSelect(chainInfo.chain)}\n key={chainInfo.name}\n >\n <Flex sx={{ overflow: 'hidden', borderRadius: '50px' }}>\n <Svg\n width=\"25px\"\n icon={NETWORK_ICONS[chainInfo.chain] ? NETWORK_ICONS[chainInfo.chain] : 'question'}\n />\n </Flex>\n <Text sx={{ fontWeight: '500', fontSize: '16px' }}>{chainInfo.name}</Text>\n </Flex>\n )\n })}\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default ChainOptionsList\n"],"names":["_jsx","_jsxs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChainOptionsList.js","sources":["../../../src/components/ChainOptionList/ChainOptionsList.tsx"],"sourcesContent":["// Components\nimport { ChangeEvent, useCallback, useState } from 'react'\nimport { styles } from './styles'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport Flex from '../uikit-sdk/Flex'\nimport Svg from '../uikit-sdk/Svg'\nimport Text from '../uikit-sdk/Text'\nimport { Input } from '../uikit-sdk/Input'\nimport { formatChainList } from './constants'\nimport { NETWORK_ICONS } from '../../config/constants/chains'\n\nconst ChainOptionsList = ({\n setSelectedChain,\n setViewAllChains,\n chainList,\n}: {\n setSelectedChain: (chain: ChainId) => void\n setViewAllChains: (viewAllChains: boolean) => void\n chainList: ChainId[]\n}) => {\n const [searchQuery, setSearchQuery] = useState<string>('')\n\n const handleChainSelect = (chain: ChainId) => {\n setSelectedChain(chain)\n setViewAllChains(false)\n }\n\n const handleInput = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n const input = event.target.value\n setSearchQuery(input)\n }, [])\n\n return (\n <Flex sx={styles.searchAndListContainer}>\n <Flex sx={{ position: 'relative', flexDirection: 'column', height: '100%' }}>\n <Flex>\n <Input onChange={handleInput} sx={styles.searchInput} placeholder=\"Search by chain name\" />\n <Flex sx={{ position: 'absolute', right: '10px', top: '12px' }}>\n <Svg icon=\"search\" />\n </Flex>\n </Flex>\n <Flex sx={styles.chainListContainer}>\n {formatChainList(chainList)\n .filter((chainInfo) => chainInfo.name.toLowerCase().includes(searchQuery.toLowerCase()))\n .map((chainInfo) => {\n return (\n <Flex\n sx={styles.chainOptionList}\n onClick={() => handleChainSelect(chainInfo.chain)}\n key={chainInfo.name}\n >\n <Flex sx={{ overflow: 'hidden', borderRadius: '50px' }}>\n <Svg\n width=\"25px\"\n icon={NETWORK_ICONS[chainInfo.chain] ? NETWORK_ICONS[chainInfo.chain] : 'question'}\n />\n </Flex>\n <Text sx={{ fontWeight: '500', fontSize: '16px' }}>{chainInfo.name}</Text>\n </Flex>\n )\n })}\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default ChainOptionsList\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;AAWA,MAAM,gBAAgB,GAAG,CAAC,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GAKV,KAAI;IACH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC;AAE1D,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAc,KAAI;QAC3C,gBAAgB,CAAC,KAAK,CAAC;QACvB,gBAAgB,CAAC,KAAK,CAAC;AACzB,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,KAAoC,KAAI;AACvE,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;QAChC,cAAc,CAAC,KAAK,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,QACEA,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,MAAM,CAAC,sBAAsB,YACrCC,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CACzEA,IAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,CACHD,GAAA,CAAC,KAAK,EAAA,EAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,EAAC,sBAAsB,GAAG,EAC3FA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAC5DA,IAAC,GAAG,EAAA,EAAC,IAAI,EAAC,QAAQ,GAAG,EAAA,CAChB,CAAA,EAAA,CACF,EACPA,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,MAAM,CAAC,kBAAkB,YAChC,eAAe,CAAC,SAAS;yBACvB,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AACtF,yBAAA,GAAG,CAAC,CAAC,SAAS,KAAI;wBACjB,QACEC,KAAC,IAAI,EAAA,EACH,EAAE,EAAE,MAAM,CAAC,eAAe,EAC1B,OAAO,EAAE,MAAM,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAA,QAAA,EAAA,CAGjDD,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAA,QAAA,EACpDA,IAAC,GAAG,EAAA,EACF,KAAK,EAAC,MAAM,EACZ,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,UAAU,EAAA,CAClF,EAAA,CACG,EACPA,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAG,SAAS,CAAC,IAAI,EAAA,CAAQ,CAAA,EAAA,EARrE,SAAS,CAAC,IAAI,CASd;AAEX,oBAAA,CAAC,CAAC,EAAA,CACC,CAAA,EAAA,CACF,EAAA,CACF;AAEX;;;;"}
|
|
@@ -13,7 +13,7 @@ const PlaceholderMonkey = ({ text, loading }) => {
|
|
|
13
13
|
background: 'white2',
|
|
14
14
|
borderRadius: 'normal',
|
|
15
15
|
mt: '15px',
|
|
16
|
-
}, children: jsx(Flex, { sx: { height: '200px', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }, children: loading ? (jsx(Spinner, { size: 100 })) : (jsxs(Fragment, { children: [jsx(Svg, { icon: "placeholderMonkey" }), jsx(Text, { sx: { fontWeight: 600, fontSize: '16px', mt: '15px', opacity: 0.6 }, children: text }), text === 'You are not connected.' && (jsx(Flex, { sx: { width: '
|
|
16
|
+
}, children: jsx(Flex, { sx: { height: '200px', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }, children: loading ? (jsx(Spinner, { size: 100 })) : (jsxs(Fragment, { children: [jsx(Svg, { icon: "placeholderMonkey" }), jsx(Text, { sx: { fontWeight: 600, fontSize: '16px', mt: '15px', opacity: 0.6 }, children: text }), text === 'You are not connected.' && (jsx(Flex, { sx: { width: '200px', mt: '10px' }, children: jsx(ConnectButton, {}) }))] })) }) }));
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
export { PlaceholderMonkey as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/PlaceholderMonkey/index.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../uikit-sdk/Flex'\nimport Svg from '../uikit-sdk/Svg'\nimport Text from '../uikit-sdk/Text'\nimport ConnectButton from '../ConnectButton'\nimport { Spinner } from 'theme-ui'\n\nconst PlaceholderMonkey = ({ text, loading }: { text?: string; loading?: boolean }) => {\n return (\n <Flex\n sx={{\n width: '100%',\n flexDirection: 'column',\n py: '100px',\n background: 'white2',\n borderRadius: 'normal',\n mt: '15px',\n }}\n >\n <Flex sx={{ height: '200px', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }}>\n {loading ? (\n <Spinner size={100} />\n ) : (\n <>\n <Svg icon=\"placeholderMonkey\" />\n <Text sx={{ fontWeight: 600, fontSize: '16px', mt: '15px', opacity: 0.6 }}>{text}</Text>\n {text === 'You are not connected.' && (\n <Flex sx={{ width: '
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/PlaceholderMonkey/index.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../uikit-sdk/Flex'\nimport Svg from '../uikit-sdk/Svg'\nimport Text from '../uikit-sdk/Text'\nimport ConnectButton from '../ConnectButton'\nimport { Spinner } from 'theme-ui'\n\nconst PlaceholderMonkey = ({ text, loading }: { text?: string; loading?: boolean }) => {\n return (\n <Flex\n sx={{\n width: '100%',\n flexDirection: 'column',\n py: '100px',\n background: 'white2',\n borderRadius: 'normal',\n mt: '15px',\n }}\n >\n <Flex sx={{ height: '200px', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }}>\n {loading ? (\n <Spinner size={100} />\n ) : (\n <>\n <Svg icon=\"placeholderMonkey\" />\n <Text sx={{ fontWeight: 600, fontSize: '16px', mt: '15px', opacity: 0.6 }}>{text}</Text>\n {text === 'You are not connected.' && (\n <Flex sx={{ width: '200px', mt: '10px' }}>\n <ConnectButton />\n </Flex>\n )}\n </>\n )}\n </Flex>\n </Flex>\n )\n}\n\nexport default PlaceholderMonkey\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":";;;;;;;AAOA,MAAM,iBAAiB,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAwC,KAAI;AACpF,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,EAAE,EAAE,OAAO;AACX,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,YAAY,EAAE,QAAQ;AACtB,YAAA,EAAE,EAAE,MAAM;SACX,EAAA,QAAA,EAEDA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAA,QAAA,EACnG,OAAO,IACNA,IAAC,OAAO,EAAA,EAAC,IAAI,EAAE,GAAG,EAAA,CAAI,KAEtBC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEF,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,mBAAmB,EAAA,CAAG,EAChCA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,QAAA,EAAG,IAAI,EAAA,CAAQ,EACvF,IAAI,KAAK,wBAAwB,KAChCA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EACtCA,GAAA,CAAC,aAAa,EAAA,EAAA,CAAG,EAAA,CACZ,CACR,IACA,CACJ,EAAA,CACI,EAAA,CACF;AAEX;;;;"}
|
|
@@ -2,7 +2,6 @@ import { jsx, jsxs } from 'theme-ui/jsx-runtime';
|
|
|
2
2
|
import Flex from '../uikit-sdk/Flex/index.js';
|
|
3
3
|
import Modal from '../uikit-sdk/Modal/index.js';
|
|
4
4
|
import Text from '../uikit-sdk/Text/index.js';
|
|
5
|
-
import 'numbro';
|
|
6
5
|
import Input from '../uikit-sdk/Input/Input.js';
|
|
7
6
|
import { useSlippage } from '../../state/slippage/useSlippage.js';
|
|
8
7
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/SlippageModal/index.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../uikit-sdk/Flex'\nimport Modal from '../uikit-sdk/Modal'\nimport Text from '../uikit-sdk/Text'\nimport { Input } from '../uikit-sdk/Input'\nimport { useSlippage } from '../../state/slippage/useSlippage'\n\nconst SlippageModal = () => {\n const [slippage, setSlippage] = useSlippage()\n\n return (\n <Modal title=\"Zap Slippage\">\n <Flex sx={{ maxWidth: '100%', width: '380px', flexDirection: 'column' }}>\n <Flex sx={{ width: '100%', flexDirection: 'column' }}>\n <Flex sx={{ flexDirection: 'column', mb: '10px' }}>\n <Text size=\"18px\" margin=\"10px 0px\">\n Slippage Tolerance\n </Text>\n <Flex sx={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>\n <Flex\n sx={{\n height: '35px',\n width: '55px',\n borderRadius: 'normal',\n background: slippage === 0.1 ? 'primaryButton' : 'white3',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n }}\n onClick={() => {\n setSlippage(0.1)\n }}\n >\n <Text> 0.1% </Text>\n </Flex>\n <Flex\n sx={{\n height: '35px',\n width: '55px',\n borderRadius: 'normal',\n background: slippage === 0.5 ? 'primaryButton' : 'white3',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n }}\n onClick={() => {\n setSlippage(0.5)\n }}\n >\n <Text> 0.5% </Text>\n </Flex>\n <Flex\n sx={{\n height: '35px',\n width: '55px',\n borderRadius: 'normal',\n background: slippage === 1 ? 'primaryButton' : 'white3',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n }}\n onClick={() => {\n setSlippage(1)\n }}\n >\n <Text> 1.0% </Text>\n </Flex>\n <Flex sx={{ width: '45%', position: 'relative' }}>\n <Input\n sx={{\n fontWeight: 700,\n width: '100%',\n height: '35px',\n background: 'white3',\n border: '0px',\n borderRadius: 'normal',\n ':focus': { outline: 'none' },\n }}\n value={slippage}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => setSlippage(parseFloat(e.target.value))}\n />\n <Flex\n sx={{\n position: 'absolute',\n right: 5,\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n }}\n >\n <Text weight={700}>%</Text>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default SlippageModal\n"],"names":["_jsx","_jsxs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/SlippageModal/index.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../uikit-sdk/Flex'\nimport Modal from '../uikit-sdk/Modal'\nimport Text from '../uikit-sdk/Text'\nimport { Input } from '../uikit-sdk/Input'\nimport { useSlippage } from '../../state/slippage/useSlippage'\n\nconst SlippageModal = () => {\n const [slippage, setSlippage] = useSlippage()\n\n return (\n <Modal title=\"Zap Slippage\">\n <Flex sx={{ maxWidth: '100%', width: '380px', flexDirection: 'column' }}>\n <Flex sx={{ width: '100%', flexDirection: 'column' }}>\n <Flex sx={{ flexDirection: 'column', mb: '10px' }}>\n <Text size=\"18px\" margin=\"10px 0px\">\n Slippage Tolerance\n </Text>\n <Flex sx={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>\n <Flex\n sx={{\n height: '35px',\n width: '55px',\n borderRadius: 'normal',\n background: slippage === 0.1 ? 'primaryButton' : 'white3',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n }}\n onClick={() => {\n setSlippage(0.1)\n }}\n >\n <Text> 0.1% </Text>\n </Flex>\n <Flex\n sx={{\n height: '35px',\n width: '55px',\n borderRadius: 'normal',\n background: slippage === 0.5 ? 'primaryButton' : 'white3',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n }}\n onClick={() => {\n setSlippage(0.5)\n }}\n >\n <Text> 0.5% </Text>\n </Flex>\n <Flex\n sx={{\n height: '35px',\n width: '55px',\n borderRadius: 'normal',\n background: slippage === 1 ? 'primaryButton' : 'white3',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n }}\n onClick={() => {\n setSlippage(1)\n }}\n >\n <Text> 1.0% </Text>\n </Flex>\n <Flex sx={{ width: '45%', position: 'relative' }}>\n <Input\n sx={{\n fontWeight: 700,\n width: '100%',\n height: '35px',\n background: 'white3',\n border: '0px',\n borderRadius: 'normal',\n ':focus': { outline: 'none' },\n }}\n value={slippage}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => setSlippage(parseFloat(e.target.value))}\n />\n <Flex\n sx={{\n position: 'absolute',\n right: 5,\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n }}\n >\n <Text weight={700}>%</Text>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default SlippageModal\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ import { WNATIVE } from '../../config/constants/tokens.js';
|
|
|
4
4
|
import Flex from '../uikit-sdk/Flex/index.js';
|
|
5
5
|
import Modal from '../uikit-sdk/Modal/index.js';
|
|
6
6
|
import TokenRow from './TokenRow.js';
|
|
7
|
-
import 'numbro';
|
|
8
7
|
import Input from '../uikit-sdk/Input/Input.js';
|
|
9
8
|
import useSortedZapList from '../../hooks/useSortedZapList.js';
|
|
10
9
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/TokenSelectorModal/index.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { Token } from '@ape.swap/apeswap-lists'\nimport { WNATIVE } from '../../config/constants/tokens'\nimport Flex from '../uikit-sdk/Flex'\nimport Modal from '../uikit-sdk/Modal'\nimport TokenRow from './TokenRow'\nimport { Input } from '../uikit-sdk/Input'\nimport useSortedZapList from '../../hooks/useSortedZapList'\n\ninterface TokenSelectorModalProps {\n bondPrincipalToken?: Token // should be ADDED to the inputList\n handleCurrencySelect: (currency: string) => void\n chainId: ChainId\n onDismiss?: () => void\n}\n\nconst TokenSelectorModal: React.FC<TokenSelectorModalProps> = ({\n bondPrincipalToken,\n handleCurrencySelect,\n chainId,\n onDismiss,\n}) => {\n const [searchQuery, setSearchQuery] = useState<string>('')\n const { sortedZapList } = useSortedZapList(chainId, bondPrincipalToken)\n\n const parsedList =\n sortedZapList?.filter((token) => {\n return !searchQuery\n ? true\n : token.token === 'NATIVE'\n ? WNATIVE[chainId as ChainId]?.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n : token.token.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n }) ?? []\n\n const handleTokenSelect = useCallback(\n (currency: string) => {\n handleCurrencySelect(currency)\n setSearchQuery('')\n if (onDismiss) onDismiss()\n },\n [onDismiss, handleCurrencySelect, setSearchQuery],\n )\n\n const handleInput = useCallback(\n (event: any) => {\n setSearchQuery(event.target.value)\n },\n [setSearchQuery],\n )\n\n return (\n <Modal onDismiss={onDismiss} title=\"Tokens\" className=\"token-selector-modal\">\n <Flex\n sx={{\n flexDirection: 'column',\n maxHeight: 'none',\n height: 'auto',\n width: 'auto',\n overflowY: 'auto',\n }}\n >\n <Flex sx={{ flexDirection: 'column' }}>\n <Flex sx={{ position: 'relative', margin: '10px 0px 15px 0px' }}>\n <Input\n id=\"token-search-input\"\n placeholder=\"Name or Address\"\n autoComplete=\"off\"\n value={searchQuery}\n onChange={handleInput}\n autoFocus\n />\n </Flex>\n <Flex\n sx={{\n borderRadius: 'normal',\n background: 'white3',\n flexDirection: 'column',\n height: '300px',\n overflowY: 'auto',\n }}\n >\n {parsedList.map((token) => {\n return (\n <TokenRow\n key={token.token === 'NATIVE' ? 'NATIVE' : token.token.address[chainId]}\n token={token.token}\n chainId={chainId}\n handleTokenSelect={handleTokenSelect}\n tokenBalance={token.balance}\n />\n )\n })}\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default TokenSelectorModal\n"],"names":["_jsx","_jsxs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/TokenSelectorModal/index.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { Token } from '@ape.swap/apeswap-lists'\nimport { WNATIVE } from '../../config/constants/tokens'\nimport Flex from '../uikit-sdk/Flex'\nimport Modal from '../uikit-sdk/Modal'\nimport TokenRow from './TokenRow'\nimport { Input } from '../uikit-sdk/Input'\nimport useSortedZapList from '../../hooks/useSortedZapList'\n\ninterface TokenSelectorModalProps {\n bondPrincipalToken?: Token // should be ADDED to the inputList\n handleCurrencySelect: (currency: string) => void\n chainId: ChainId\n onDismiss?: () => void\n}\n\nconst TokenSelectorModal: React.FC<TokenSelectorModalProps> = ({\n bondPrincipalToken,\n handleCurrencySelect,\n chainId,\n onDismiss,\n}) => {\n const [searchQuery, setSearchQuery] = useState<string>('')\n const { sortedZapList } = useSortedZapList(chainId, bondPrincipalToken)\n\n const parsedList =\n sortedZapList?.filter((token) => {\n return !searchQuery\n ? true\n : token.token === 'NATIVE'\n ? WNATIVE[chainId as ChainId]?.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n : token.token.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n }) ?? []\n\n const handleTokenSelect = useCallback(\n (currency: string) => {\n handleCurrencySelect(currency)\n setSearchQuery('')\n if (onDismiss) onDismiss()\n },\n [onDismiss, handleCurrencySelect, setSearchQuery],\n )\n\n const handleInput = useCallback(\n (event: any) => {\n setSearchQuery(event.target.value)\n },\n [setSearchQuery],\n )\n\n return (\n <Modal onDismiss={onDismiss} title=\"Tokens\" className=\"token-selector-modal\">\n <Flex\n sx={{\n flexDirection: 'column',\n maxHeight: 'none',\n height: 'auto',\n width: 'auto',\n overflowY: 'auto',\n }}\n >\n <Flex sx={{ flexDirection: 'column' }}>\n <Flex sx={{ position: 'relative', margin: '10px 0px 15px 0px' }}>\n <Input\n id=\"token-search-input\"\n placeholder=\"Name or Address\"\n autoComplete=\"off\"\n value={searchQuery}\n onChange={handleInput}\n autoFocus\n />\n </Flex>\n <Flex\n sx={{\n borderRadius: 'normal',\n background: 'white3',\n flexDirection: 'column',\n height: '300px',\n overflowY: 'auto',\n }}\n >\n {parsedList.map((token) => {\n return (\n <TokenRow\n key={token.token === 'NATIVE' ? 'NATIVE' : token.token.address[chainId]}\n token={token.token}\n chainId={chainId}\n handleTokenSelect={handleTokenSelect}\n tokenBalance={token.balance}\n />\n )\n })}\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default TokenSelectorModal\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
|
|
3
3
|
const Timer = ({ color = 'text', width }) => {
|
|
4
|
-
return (jsx("svg", { width: width || '28', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", fill: color, children: jsx("path", { d: "M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z" }) }));
|
|
4
|
+
return (jsx("svg", { width: width || '28', height: width || '28', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", fill: color, children: jsx("path", { d: "M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z" }) }));
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
export { Timer as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timer.js","sources":["../../../../../src/components/uikit-sdk/Svg/Icons/Timer.tsx"],"sourcesContent":["import React from 'react'\nimport { SvgProps } from './types'\n\nconst Timer: React.FC<SvgProps> = ({ color = 'text', width }) => {\n return (\n <svg
|
|
1
|
+
{"version":3,"file":"Timer.js","sources":["../../../../../src/components/uikit-sdk/Svg/Icons/Timer.tsx"],"sourcesContent":["import React from 'react'\nimport { SvgProps } from './types'\n\nconst Timer: React.FC<SvgProps> = ({ color = 'text', width }) => {\n return (\n <svg\n width={width || '28'}\n height={width || '28'}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n fill={color}\n >\n <path d=\"M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\" />\n </svg>\n )\n}\n\nexport default Timer\n"],"names":["_jsx"],"mappings":";;AAGA,MAAM,KAAK,GAAuB,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,KAAI;AAC9D,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE,KAAK,IAAI,IAAI,EACpB,MAAM,EAAE,KAAK,IAAI,IAAI,EACrB,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,aAAa,EACrB,IAAI,EAAE,KAAK,EAAA,QAAA,EAEXA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0LAA0L,EAAA,CAAG,EAAA,CACjM;AAEV;;;;"}
|
|
@@ -19,7 +19,6 @@ interface FormatDollarArgs {
|
|
|
19
19
|
* @param round whether or not to round up non-price amounts
|
|
20
20
|
*/
|
|
21
21
|
export declare const formatDollar: ({ num, isPrice, lessPreciseStablecoinValues, digits, round, }: FormatDollarArgs) => string;
|
|
22
|
-
export declare const formatValue: ({ num, digits, round }: any) => string;
|
|
23
22
|
/**
|
|
24
23
|
* Returns a numerical amount of any token formatted in human readable string for use in template.
|
|
25
24
|
*
|
|
@@ -1,6 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const dollarAbbreviations = [
|
|
2
|
+
{ value: 1e12, suffix: 'T' },
|
|
3
|
+
{ value: 1e9, suffix: 'B' },
|
|
4
|
+
{ value: 1e6, suffix: 'M' },
|
|
5
|
+
// { value: 1e3, suffix: 'K' },
|
|
6
|
+
];
|
|
7
|
+
const formatDollarAmount = (num, digits, round) => {
|
|
8
|
+
const mantissa = num > 1000 ? 2 : digits;
|
|
9
|
+
const sign = num < 0 ? '-' : '';
|
|
10
|
+
const absoluteNum = Math.abs(num);
|
|
11
|
+
if (round) {
|
|
12
|
+
const abbreviation = dollarAbbreviations.find(({ value }) => absoluteNum >= value);
|
|
13
|
+
if (abbreviation) {
|
|
14
|
+
return `${sign}$${(absoluteNum / abbreviation.value).toFixed(mantissa)}${abbreviation.suffix}`;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return `${sign}$${absoluteNum.toFixed(mantissa)}`;
|
|
18
|
+
};
|
|
4
19
|
/**
|
|
5
20
|
* Returns a USD dollar or equivalent denominated numerical value formatted
|
|
6
21
|
* in human readable string for use in template.
|
|
@@ -49,16 +64,7 @@ const formatDollar = ({ num, isPrice = false, lessPreciseStablecoinValues = fals
|
|
|
49
64
|
if (num >= 0.1 && num < 1.05) {
|
|
50
65
|
return `$${num.toFixed(3)}`;
|
|
51
66
|
}
|
|
52
|
-
return
|
|
53
|
-
.formatCurrency({
|
|
54
|
-
average: round,
|
|
55
|
-
mantissa: num > 1000 ? 2 : digits,
|
|
56
|
-
abbreviations: {
|
|
57
|
-
million: 'M',
|
|
58
|
-
billion: 'B',
|
|
59
|
-
},
|
|
60
|
-
})
|
|
61
|
-
.toUpperCase();
|
|
67
|
+
return formatDollarAmount(num, digits, round);
|
|
62
68
|
}
|
|
63
69
|
};
|
|
64
70
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatNumbers.js","sources":["../../src/utils/formatNumbers.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"formatNumbers.js","sources":["../../src/utils/formatNumbers.ts"],"sourcesContent":["interface FormatDollarArgs {\n num: number | undefined | null\n isPrice?: boolean\n lessPreciseStablecoinValues?: boolean\n digits?: number\n round?: boolean\n}\n\nconst dollarAbbreviations = [\n { value: 1e12, suffix: 'T' },\n { value: 1e9, suffix: 'B' },\n { value: 1e6, suffix: 'M' },\n // { value: 1e3, suffix: 'K' },\n]\n\nconst formatDollarAmount = (num: number, digits: number, round: boolean): string => {\n const mantissa = num > 1000 ? 2 : digits\n const sign = num < 0 ? '-' : ''\n const absoluteNum = Math.abs(num)\n\n if (round) {\n const abbreviation = dollarAbbreviations.find(({ value }) => absoluteNum >= value)\n\n if (abbreviation) {\n return `${sign}$${(absoluteNum / abbreviation.value).toFixed(mantissa)}${abbreviation.suffix}`\n }\n }\n\n return `${sign}$${absoluteNum.toFixed(mantissa)}`\n}\n\n/**\n * Returns a USD dollar or equivalent denominated numerical value formatted\n * in human readable string for use in template.\n *\n * Adheres to guidelines for prices and other numbers defined here:\n * https://www.notion.so/uniswaplabs/Number-standards-fbb9f533f10e4e22820722c2f66d23c0\n * @param num numerical value denominated in USD or USD equivalent\n * @param isPrice whether the amount represents a price or not\n * @param lessPreciseStablecoinValues whether or not we should show less precise values for\n * stablecoins (around 1$ in value always) for the sake of readability\n * @param digits number of digits after the decimal for non-price amounts\n * @param round whether or not to round up non-price amounts\n */\nexport const formatDollar = ({\n num,\n isPrice = false,\n lessPreciseStablecoinValues = false,\n digits = 2,\n round = true,\n}: FormatDollarArgs): string => {\n // For USD dollar denominated prices.\n if (isPrice) {\n if (num === 0) return '$0.00'\n if (!num) return '-'\n if (num < 0.000001) {\n return `$${num.toExponential(2)}`\n }\n if ((num >= 0.000001 && num < 0.1) || num > 1000000) {\n return `$${Number(num).toPrecision(3)}`\n }\n // We only show 2 decimal places in explore table for stablecoin value ranges\n // for the sake of readability (as opposed to the usual 3 elsewhere).\n if (num >= 0.1 && num < (lessPreciseStablecoinValues ? 0.9995 : 1.05)) {\n return `$${num.toFixed(3)}`\n }\n return `$${Number(num.toFixed(2)).toLocaleString('en-US', { minimumFractionDigits: 2 })}`\n }\n // For volume dollar amounts, like market cap, total value locked, etc.\n else {\n if (num === 0) return '$0.00'\n if (!num) return '-'\n if (num < 0.000001) {\n return '$<0.000001'\n }\n if (num >= 0.000001 && num < 0.1) {\n return `$${Number(num).toPrecision(3)}`\n }\n if (num >= 0.1 && num < 1.05) {\n return `$${num.toFixed(3)}`\n }\n\n return formatDollarAmount(num, digits, round)\n }\n}\n\n/**\n * Returns a numerical amount of any token formatted in human readable string for use in template.\n *\n * For transaction review numbers, such as token quantities, NFT price (token-denominated),\n * network fees, transaction history items. Adheres to guidelines defined here:\n * https://www.notion.so/uniswaplabs/Number-standards-fbb9f533f10e4e22820722c2f66d23c0\n * @param num numerical value denominated in any token\n * @param maxDigits the maximum number of digits that should be shown for the quantity\n */\nexport const formatTransactionAmount = (num: number | undefined | null, maxDigits = 9) => {\n if (num === 0) return '0.00'\n if (!num) return ''\n if (num < 0.00001) {\n return '<0.00001'\n }\n if (num >= 0.00001 && num < 1) {\n return `${Number(num.toFixed(5)).toLocaleString('en-US', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 5,\n })}`\n }\n if (num >= 1 && num < 10000) {\n return `${Number(num.toPrecision(6)).toLocaleString('en-US', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 6,\n })}`\n }\n if (num >= 10000 && num < 1000000) {\n return `${Number(num.toFixed(2)).toLocaleString('en-US', { minimumFractionDigits: 2 })}`\n }\n // For very large numbers, switch to scientific notation and show as much precision\n // as permissible by maxDigits param.\n if (num >= Math.pow(10, maxDigits - 1)) {\n return `${num.toExponential(maxDigits - 3)}`\n }\n return `${Number(num.toFixed(2)).toLocaleString('en-US', { minimumFractionDigits: 2 })}`\n}\n"],"names":[],"mappings":"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"}
|
package/dist/utils/numbers.d.ts
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
1
|
export declare const isNumber: (s: string) => boolean;
|
|
2
|
-
export declare const floorFormatter: (n: number) => string;
|
|
3
|
-
export declare const volumeFormatter: (n: number) => string;
|
|
4
|
-
export declare const quantityFormatter: (n: number) => string;
|
|
5
|
-
export declare const roundWholePercentage: (n: number) => string;
|
package/dist/utils/numbers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numbers.js","sources":["../../src/utils/numbers.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"numbers.js","sources":["../../src/utils/numbers.ts"],"sourcesContent":["export const isNumber = (s: string): boolean => {\n const reg = /^-?\\d+\\.?\\d*$/\n return reg.test(s) && !isNaN(parseFloat(s)) && isFinite(parseFloat(s))\n}\n"],"names":[],"mappings":"AAAO,MAAM,QAAQ,GAAG,CAAC,CAAS,KAAa;IAC7C,MAAM,GAAG,GAAG,eAAe;IAC3B,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACxE;;;;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { Flex } from 'theme-ui';
|
|
3
|
-
import 'numbro';
|
|
4
3
|
import Input from '../../../../components/uikit-sdk/Input/Input.js';
|
|
5
4
|
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
6
5
|
import FavIcon from '../../../../components/FavIcons/FavFilter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BondsMenu.js","sources":["../../../../../src/views/Bonds/components/BondsMenu/BondsMenu.tsx"],"sourcesContent":["import React from 'react'\nimport { Flex } from 'theme-ui'\nimport { Input } from '../../../../components/uikit-sdk/Input'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport FavIcon from '../../../../components/FavIcons/FavFilter'\nimport BondFilters from '../../../../components/BondFilters/BondFilters'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\n\ninterface BondRowHeaderProps {\n searchQuery: string\n setSearchQuery: (value: string) => void\n setChainFilterOption: (newValue: string[]) => void\n chainFilterOption: string[]\n filterOptions: string[]\n filterOption: string\n setFilterOption: (newOption: string) => void\n onSort: (key: 'bonus' | 'arr' | 'terms' | 'tokensRemaining') => void\n}\n\nconst BondsMenu: React.FC<BondRowHeaderProps> = ({\n searchQuery,\n setSearchQuery,\n setChainFilterOption,\n chainFilterOption,\n filterOptions,\n filterOption,\n setFilterOption,\n onSort,\n}) => {\n const { namingPreference } = useSDKConfig()\n return (\n <div className=\"bonds-menu\">\n <BondFilters\n chainFilterOption={chainFilterOption ?? ['All Chains']}\n setChainFilterOption={setChainFilterOption}\n filterOptions={filterOptions}\n filterOption={filterOption}\n setFilterOption={setFilterOption}\n onHandleQueryChange={() => setSearchQuery('')}\n />\n <div className=\"table-header-container\">\n <div className=\"search-container\">\n <Flex sx={{ width: '100%', maxWidth: '340px' }}>\n <Input\n value={searchQuery}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => setSearchQuery(event.target.value)}\n variant=\"search\"\n width={'100%'}\n sx={{\n fontWeight: 600,\n background: 'white2',\n height: '30px',\n fontSize: '14px',\n color: 'white',\n width: ['calc(50vw - 25px)'],\n }}\n placeholder={'Search...'}\n />\n <FavIcon filterOption={filterOption} setFilterOption={setFilterOption} />\n </Flex>\n </div>\n <div className=\"headers-container\">\n <div className=\"discount-header\" onClick={() => onSort('bonus')}>\n {namingPreference.toUpperCase()}\n <Flex sx={{ ml: '5px', mb: '3px' }}>\n <Svg icon=\"sort\" width={10} color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"terms-header\" onClick={() => onSort('terms')}>\n TERMS\n <Flex sx={{ ml: '5px', mb: '3px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"tokens-remaining-header\" onClick={() => onSort('tokensRemaining')}>\n TOKENS REMAINING\n <Flex sx={{ ml: '5px', mb: '3px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"tooltip-header\" />\n </div>\n </div>\n </div>\n )\n}\n\nexport default BondsMenu\n"],"names":["_jsxs","_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BondsMenu.js","sources":["../../../../../src/views/Bonds/components/BondsMenu/BondsMenu.tsx"],"sourcesContent":["import React from 'react'\nimport { Flex } from 'theme-ui'\nimport { Input } from '../../../../components/uikit-sdk/Input'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport FavIcon from '../../../../components/FavIcons/FavFilter'\nimport BondFilters from '../../../../components/BondFilters/BondFilters'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\n\ninterface BondRowHeaderProps {\n searchQuery: string\n setSearchQuery: (value: string) => void\n setChainFilterOption: (newValue: string[]) => void\n chainFilterOption: string[]\n filterOptions: string[]\n filterOption: string\n setFilterOption: (newOption: string) => void\n onSort: (key: 'bonus' | 'arr' | 'terms' | 'tokensRemaining') => void\n}\n\nconst BondsMenu: React.FC<BondRowHeaderProps> = ({\n searchQuery,\n setSearchQuery,\n setChainFilterOption,\n chainFilterOption,\n filterOptions,\n filterOption,\n setFilterOption,\n onSort,\n}) => {\n const { namingPreference } = useSDKConfig()\n return (\n <div className=\"bonds-menu\">\n <BondFilters\n chainFilterOption={chainFilterOption ?? ['All Chains']}\n setChainFilterOption={setChainFilterOption}\n filterOptions={filterOptions}\n filterOption={filterOption}\n setFilterOption={setFilterOption}\n onHandleQueryChange={() => setSearchQuery('')}\n />\n <div className=\"table-header-container\">\n <div className=\"search-container\">\n <Flex sx={{ width: '100%', maxWidth: '340px' }}>\n <Input\n value={searchQuery}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => setSearchQuery(event.target.value)}\n variant=\"search\"\n width={'100%'}\n sx={{\n fontWeight: 600,\n background: 'white2',\n height: '30px',\n fontSize: '14px',\n color: 'white',\n width: ['calc(50vw - 25px)'],\n }}\n placeholder={'Search...'}\n />\n <FavIcon filterOption={filterOption} setFilterOption={setFilterOption} />\n </Flex>\n </div>\n <div className=\"headers-container\">\n <div className=\"discount-header\" onClick={() => onSort('bonus')}>\n {namingPreference.toUpperCase()}\n <Flex sx={{ ml: '5px', mb: '3px' }}>\n <Svg icon=\"sort\" width={10} color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"terms-header\" onClick={() => onSort('terms')}>\n TERMS\n <Flex sx={{ ml: '5px', mb: '3px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"tokens-remaining-header\" onClick={() => onSort('tokensRemaining')}>\n TOKENS REMAINING\n <Flex sx={{ ml: '5px', mb: '3px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"tooltip-header\" />\n </div>\n </div>\n </div>\n )\n}\n\nexport default BondsMenu\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AAmBA,MAAM,SAAS,GAAiC,CAAC,EAC/C,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,MAAM,GACP,KAAI;AACH,IAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE;IAC3C,QACEA,cAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CACzBC,GAAA,CAAC,WAAW,EAAA,EACV,iBAAiB,EAAE,iBAAiB,IAAI,CAAC,YAAY,CAAC,EACtD,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,MAAM,cAAc,CAAC,EAAE,CAAC,EAAA,CAC7C,EACFD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAA,CACrCC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kBAAkB,YAC/BD,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAA,QAAA,EAAA,CAC5CC,IAAC,KAAK,EAAA,EACJ,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,KAA0C,KAAK,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5F,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE;AACF,wCAAA,UAAU,EAAE,GAAG;AACf,wCAAA,UAAU,EAAE,QAAQ;AACpB,wCAAA,MAAM,EAAE,MAAM;AACd,wCAAA,QAAQ,EAAE,MAAM;AAChB,wCAAA,KAAK,EAAE,OAAO;wCACd,KAAK,EAAE,CAAC,mBAAmB,CAAC;AAC7B,qCAAA,EACD,WAAW,EAAE,WAAW,GACxB,EACFA,GAAA,CAAC,OAAO,EAAA,EAAC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,GAAI,CAAA,EAAA,CACpE,EAAA,CACH,EACND,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,aAChCA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,aAC5D,gBAAgB,CAAC,WAAW,EAAE,EAC/BC,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,YAChCA,GAAA,CAAC,GAAG,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAC,oBAAoB,GAAG,EAAA,CACpD,CAAA,EAAA,CACH,EACND,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,cAAc,EAAC,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,CAAA,OAAA,EAE1DC,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAChCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,oBAAoB,EAAA,CAAG,GACtD,CAAA,EAAA,CACH,EACND,cAAK,SAAS,EAAC,yBAAyB,EAAC,OAAO,EAAE,MAAM,MAAM,CAAC,iBAAiB,CAAC,iCAE/EC,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,YAChCA,GAAA,CAAC,GAAG,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,oBAAoB,GAAG,EAAA,CACtD,CAAA,EAAA,CACH,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,EAAA,CAAG,IAC9B,CAAA,EAAA,CACF,CAAA,EAAA,CACF;AAEV;;;;"}
|
|
@@ -39,7 +39,7 @@ const BonusComponent = ({ trueBondPrices, minTier, bonus, airdropTooltip, toolti
|
|
|
39
39
|
? 'success'
|
|
40
40
|
: 'error',
|
|
41
41
|
fontSize: ['14px', '14px', '16px', '16px'],
|
|
42
|
-
}, children: [highestPointsElement?.bonusWithFee?.toFixed(2), "%"] })] })] }) })) : (jsx(Flex, { sx: { height: '20px', width: '20px' }, children: jsx(TooltipBubble, { body: 'This bond is currently on cooldown and has no bonus. Please check back soon.', width: "205px", placement: "bottomRight", transformTip: "translate(10%, 0%)", children: jsx(Svg, { icon: "Timer", width:
|
|
42
|
+
}, children: [highestPointsElement?.bonusWithFee?.toFixed(2), "%"] })] })] }) })) : (jsx(Flex, { sx: { height: '20px', width: '20px', minWidth: '18px' }, children: jsx(TooltipBubble, { body: 'This bond is currently on cooldown and has no bonus. Please check back soon.', width: "205px", placement: "bottomRight", transformTip: "translate(10%, 0%)", children: jsx(Svg, { icon: "Timer", width: 18, color: "#81CFEA" }) }) })) })) : baseTrueBondPrice ? (jsx(Flex, { sx: { alignItems: 'center' }, className: `${getDiscountColor(+baseTrueBondPrice?.bonusWithFee)}`, children: baseTrueBondPrice?.bonusWithFee > 0 ? (`${baseTrueBondPrice?.bonusWithFee?.toFixed(2)}%`) : (jsx(Flex, { sx: { height: '20px', width: '20px', minWidth: '18px' }, children: jsx(TooltipBubble, { body: 'This bond is currently on cooldown and has no bonus. Please check back soon.', width: "205px", placement: "bottomRight", transformTip: "translate(10%, 0%)", children: jsx(Svg, { icon: "Timer", width: 18, color: "#81CFEA" }) }) })) })) : (jsxs(Flex, { sx: { color: bonus && 'success', alignItems: 'center' }, children: [bonus || '-', airdropTooltip && (jsx(TooltipBubble, { body: jsx(Fragment, { children: airdropTooltip }), width: "230px", placement: isMobile ? 'bottomRight' : 'bottomLeft', transformTip: isMobile ? 'translate(9%, 6%)' : 'translate(-3%, 6%)', children: jsx(Flex, { sx: { width: '20px', height: '20px', alignItems: 'center', ml: '5px' }, children: jsx("img", { src: "https://res.cloudinary.com/dswmrqgwy/image/upload/v1750345773/airdrop_qvh4ow.png", alt: "airdrop-img", style: { width: '20px', height: '20px' } }) }) }))] })) }));
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
export { BonusComponent as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BonusComponent.js","sources":["../../../../../src/views/Bonds/components/BonusComponents/BonusComponent.tsx"],"sourcesContent":["import React from 'react'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport { BigNumber } from 'bignumber.js'\nimport BonusTable from './BonusTable'\nimport { findHighestTrueBondPrices } from '../../../BuyBond/findHighestTrueBondPrice'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { getDiscountColor } from '../../utils'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\n\nconst BonusComponent = ({\n trueBondPrices,\n minTier,\n bonus,\n airdropTooltip,\n tooltipPosition,\n}: {\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n bonus?: string\n airdropTooltip?: string\n tooltipPosition: 'bottomRight' | 'bottomLeft'\n}) => {\n const SDKConfig = useSDKConfig()\n const isMobile = useIsMobile()\n const highestPointsElement = trueBondPrices?.reduce((max, current) => {\n return new BigNumber(current.points).isGreaterThan(new BigNumber(max.points)) ? current : max\n }, trueBondPrices[0])\n\n const baseTrueBondPrice = findHighestTrueBondPrices('0', trueBondPrices)\n\n return (\n <Flex>\n {trueBondPrices && trueBondPrices?.length > 1 && SDKConfig.useTiers ? (\n <Flex sx={{ alignItems: 'center' }}>\n {highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? (\n <TooltipBubble\n width=\"280px\"\n placement={tooltipPosition}\n transformTip={tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)'}\n body={<BonusTable trueBondPrices={trueBondPrices} minTier={minTier} />}\n >\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid var(--theme-ui-colors-primaryButton)',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n cursor: 'pointer',\n width: ['130px', '130px', '150px', '150px'],\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: 'primaryButton',\n opacity: 0.3,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center', justifyContent: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Flex sx={{ fontSize: ['12px', '12px', '14px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color:\n highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0\n ? 'success'\n : 'error',\n fontSize: ['14px', '14px', '16px', '16px'],\n }}\n >\n {highestPointsElement?.bonusWithFee?.toFixed(2)}%\n </Flex>\n </Flex>\n </Flex>\n </TooltipBubble>\n ) : (\n <Flex sx={{ height: '20px', width: '20px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width
|
|
1
|
+
{"version":3,"file":"BonusComponent.js","sources":["../../../../../src/views/Bonds/components/BonusComponents/BonusComponent.tsx"],"sourcesContent":["import React from 'react'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport { BigNumber } from 'bignumber.js'\nimport BonusTable from './BonusTable'\nimport { findHighestTrueBondPrices } from '../../../BuyBond/findHighestTrueBondPrice'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { getDiscountColor } from '../../utils'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\n\nconst BonusComponent = ({\n trueBondPrices,\n minTier,\n bonus,\n airdropTooltip,\n tooltipPosition,\n}: {\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n bonus?: string\n airdropTooltip?: string\n tooltipPosition: 'bottomRight' | 'bottomLeft'\n}) => {\n const SDKConfig = useSDKConfig()\n const isMobile = useIsMobile()\n const highestPointsElement = trueBondPrices?.reduce((max, current) => {\n return new BigNumber(current.points).isGreaterThan(new BigNumber(max.points)) ? current : max\n }, trueBondPrices[0])\n\n const baseTrueBondPrice = findHighestTrueBondPrices('0', trueBondPrices)\n\n return (\n <Flex>\n {trueBondPrices && trueBondPrices?.length > 1 && SDKConfig.useTiers ? (\n <Flex sx={{ alignItems: 'center' }}>\n {highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? (\n <TooltipBubble\n width=\"280px\"\n placement={tooltipPosition}\n transformTip={tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)'}\n body={<BonusTable trueBondPrices={trueBondPrices} minTier={minTier} />}\n >\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid var(--theme-ui-colors-primaryButton)',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n cursor: 'pointer',\n width: ['130px', '130px', '150px', '150px'],\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: 'primaryButton',\n opacity: 0.3,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center', justifyContent: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Flex sx={{ fontSize: ['12px', '12px', '14px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color:\n highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0\n ? 'success'\n : 'error',\n fontSize: ['14px', '14px', '16px', '16px'],\n }}\n >\n {highestPointsElement?.bonusWithFee?.toFixed(2)}%\n </Flex>\n </Flex>\n </Flex>\n </TooltipBubble>\n ) : (\n <Flex sx={{ height: '20px', width: '20px', minWidth: '18px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width={18} color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : baseTrueBondPrice ? (\n <Flex sx={{ alignItems: 'center' }} className={`${getDiscountColor(+baseTrueBondPrice?.bonusWithFee)}`}>\n {baseTrueBondPrice?.bonusWithFee > 0 ? (\n `${baseTrueBondPrice?.bonusWithFee?.toFixed(2)}%`\n ) : (\n <Flex sx={{ height: '20px', width: '20px', minWidth: '18px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width={18} color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : (\n <Flex sx={{ color: bonus && 'success', alignItems: 'center' }}>\n {bonus || '-'}\n {airdropTooltip && (\n <TooltipBubble\n body={<>{airdropTooltip}</>}\n width=\"230px\"\n placement={isMobile ? 'bottomRight' : 'bottomLeft'}\n transformTip={isMobile ? 'translate(9%, 6%)' : 'translate(-3%, 6%)'}\n >\n <Flex sx={{ width: '20px', height: '20px', alignItems: 'center', ml: '5px' }}>\n <img\n src=\"https://res.cloudinary.com/dswmrqgwy/image/upload/v1750345773/airdrop_qvh4ow.png\"\n alt=\"airdrop-img\"\n style={{ width: '20px', height: '20px' }}\n />\n </Flex>\n </TooltipBubble>\n )}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default BonusComponent\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { Flex } from 'theme-ui';
|
|
3
3
|
import BondFilters from '../../../../components/BondFilters/BondFilters.js';
|
|
4
|
-
import 'numbro';
|
|
5
4
|
import Input from '../../../../components/uikit-sdk/Input/Input.js';
|
|
6
5
|
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
7
6
|
import ClaimAll from '../ClaimAll/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YourBondsMenu.js","sources":["../../../../../src/views/YourBonds/components/YourBondsMenu/YourBondsMenu.tsx"],"sourcesContent":["import React from 'react'\nimport { Flex } from 'theme-ui'\nimport BondFilters from '../../../../components/BondFilters/BondFilters'\nimport { Input } from '../../../../components/uikit-sdk/Input'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport { SortableKeys } from '../../YourBonds'\nimport ClaimAll from '../ClaimAll'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\n\nconst YourBondsMenu = ({\n chainFilterOption,\n setChainFilterOption,\n filterOptions,\n filterOption,\n setFilterOption,\n setInputValue,\n inputValue,\n handleSort,\n}: {\n chainFilterOption: string[]\n setChainFilterOption: (newValue: string[]) => void\n filterOptions: string[]\n filterOption: string\n setFilterOption: (newValue: string) => void\n setInputValue: (newValue: string) => void\n inputValue: string\n handleSort: (key: SortableKeys) => void\n}) => {\n const SDKConfig = useSDKConfig()\n\n return (\n <div className=\"bonds-menu\">\n <BondFilters\n chainFilterOption={chainFilterOption ?? ['All Chains']}\n setChainFilterOption={setChainFilterOption}\n filterOptions={filterOptions}\n filterOption={filterOption}\n setFilterOption={setFilterOption}\n onHandleQueryChange={() => setInputValue('')}\n />\n <div className=\"table-header-container\">\n <div className=\"search-container\">\n <Flex sx={{ width: '100%', maxWidth: '300px' }}>\n <Input\n className=\"search-input\"\n value={inputValue}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => setInputValue(event.target.value)}\n variant=\"search\"\n sx={{ fontWeight: 600, background: 'white2', height: '30px', fontSize: '14px', color: 'white' }}\n width={'100%'}\n placeholder={'Search...'}\n />\n </Flex>\n </div>\n <div className=\"headers-container\" sx={{ pr: ['0', '0', '0', '20px'] }}>\n <div className=\"your-bonds-table-headers\" onClick={() => handleSort('claimable')}>\n CLAIMABLE\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"your-bonds-table-headers\" onClick={() => handleSort('pending')}>\n PENDING\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"your-bonds-table-headers\" onClick={() => handleSort('terms')}>\n TERMS\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <Flex className=\"claim-all-button-container\">{SDKConfig.referenceId === 'apebond' && <ClaimAll />}</Flex>\n </div>\n </div>\n </div>\n )\n}\n\nexport default YourBondsMenu\n"],"names":["_jsxs","_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"YourBondsMenu.js","sources":["../../../../../src/views/YourBonds/components/YourBondsMenu/YourBondsMenu.tsx"],"sourcesContent":["import React from 'react'\nimport { Flex } from 'theme-ui'\nimport BondFilters from '../../../../components/BondFilters/BondFilters'\nimport { Input } from '../../../../components/uikit-sdk/Input'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport { SortableKeys } from '../../YourBonds'\nimport ClaimAll from '../ClaimAll'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\n\nconst YourBondsMenu = ({\n chainFilterOption,\n setChainFilterOption,\n filterOptions,\n filterOption,\n setFilterOption,\n setInputValue,\n inputValue,\n handleSort,\n}: {\n chainFilterOption: string[]\n setChainFilterOption: (newValue: string[]) => void\n filterOptions: string[]\n filterOption: string\n setFilterOption: (newValue: string) => void\n setInputValue: (newValue: string) => void\n inputValue: string\n handleSort: (key: SortableKeys) => void\n}) => {\n const SDKConfig = useSDKConfig()\n\n return (\n <div className=\"bonds-menu\">\n <BondFilters\n chainFilterOption={chainFilterOption ?? ['All Chains']}\n setChainFilterOption={setChainFilterOption}\n filterOptions={filterOptions}\n filterOption={filterOption}\n setFilterOption={setFilterOption}\n onHandleQueryChange={() => setInputValue('')}\n />\n <div className=\"table-header-container\">\n <div className=\"search-container\">\n <Flex sx={{ width: '100%', maxWidth: '300px' }}>\n <Input\n className=\"search-input\"\n value={inputValue}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => setInputValue(event.target.value)}\n variant=\"search\"\n sx={{ fontWeight: 600, background: 'white2', height: '30px', fontSize: '14px', color: 'white' }}\n width={'100%'}\n placeholder={'Search...'}\n />\n </Flex>\n </div>\n <div className=\"headers-container\" sx={{ pr: ['0', '0', '0', '20px'] }}>\n <div className=\"your-bonds-table-headers\" onClick={() => handleSort('claimable')}>\n CLAIMABLE\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"your-bonds-table-headers\" onClick={() => handleSort('pending')}>\n PENDING\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <div className=\"your-bonds-table-headers\" onClick={() => handleSort('terms')}>\n TERMS\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"sort\" width=\"12px\" color=\"textDisabledButton\" />\n </Flex>\n </div>\n <Flex className=\"claim-all-button-container\">{SDKConfig.referenceId === 'apebond' && <ClaimAll />}</Flex>\n </div>\n </div>\n </div>\n )\n}\n\nexport default YourBondsMenu\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AASA,MAAM,aAAa,GAAG,CAAC,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,GAUX,KAAI;AACH,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAEhC,IAAA,QACEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CACzBC,GAAA,CAAC,WAAW,EAAA,EACV,iBAAiB,EAAE,iBAAiB,IAAI,CAAC,YAAY,CAAC,EACtD,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,MAAM,aAAa,CAAC,EAAE,CAAC,EAAA,CAC5C,EACFD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wBAAwB,aACrCC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kBAAkB,YAC/BA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAC5CA,GAAA,CAAC,KAAK,EAAA,EACJ,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,KAA0C,KAAK,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3F,OAAO,EAAC,QAAQ,EAChB,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAC/F,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,GACxB,EAAA,CACG,EAAA,CACH,EACND,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EAAA,CACpEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0BAA0B,EAAC,OAAO,EAAE,MAAM,UAAU,CAAC,WAAW,CAAC,0BAE9EC,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EACrBA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,oBAAoB,EAAA,CAAG,EAAA,CACtD,CAAA,EAAA,CACH,EACND,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0BAA0B,EAAC,OAAO,EAAE,MAAM,UAAU,CAAC,SAAS,CAAC,wBAE5EC,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EACrBA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,oBAAoB,EAAA,CAAG,EAAA,CACtD,CAAA,EAAA,CACH,EACND,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0BAA0B,EAAC,OAAO,EAAE,MAAM,UAAU,CAAC,OAAO,CAAC,sBAE1EC,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EACrBA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,oBAAoB,EAAA,CAAG,EAAA,CACtD,CAAA,EAAA,CACH,EACNA,IAAC,IAAI,EAAA,EAAC,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAE,SAAS,CAAC,WAAW,KAAK,SAAS,IAAIA,GAAA,CAAC,QAAQ,KAAG,EAAA,CAAQ,CAAA,EAAA,CACrG,CAAA,EAAA,CACF,CAAA,EAAA,CACF;AAEV;;;;"}
|
|
@@ -7,7 +7,6 @@ import Modal from '../../../../components/uikit-sdk/Modal/index.js';
|
|
|
7
7
|
import Text from '../../../../components/uikit-sdk/Text/index.js';
|
|
8
8
|
import { getBalanceNumber } from '../../../../utils/getBalanceNumber.js';
|
|
9
9
|
import TokenImage from '../../../../components/uikit-sdk/TokenImage/index.js';
|
|
10
|
-
import 'numbro';
|
|
11
10
|
import Input from '../../../../components/uikit-sdk/Input/Input.js';
|
|
12
11
|
import TransferAction from './TransferAction.js';
|
|
13
12
|
import { getPendingVestingString } from '../../../../utils/displayHelpers.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/YourBondsModal/components/TransferBondModal/index.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport CheckBox from '../../../../components/uikit-sdk/Checkbox'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { Input } from '../../../../components/uikit-sdk/Input'\nimport TransferAction from './TransferAction'\nimport { getPendingVestingString } from '../../../../utils/displayHelpers'\n\ninterface TransferBillModalProps {\n onDismiss?: () => void\n userBill?: UserBill\n}\n\nconst TransferModal: React.FC<TransferBillModalProps> = ({ onDismiss, userBill }) => {\n // State\n const [confirmSend, setConfirmSend] = useState(false)\n const [toAddress, setToAddress] = useState('')\n\n // Data\n const bond = userBill?.bond\n const chainId = bond?.chainId\n const { lpToken, earnToken } = userBill?.bond ?? {}\n const pending =\n chainId &&\n getBalanceNumber(new BigNumber(userBill?.payout ?? 0), earnToken?.decimals?.[chainId as ChainId] ?? 18)?.toFixed(4)\n return (\n <Modal onDismiss={onDismiss} title=\"Transfer Bond\" zIndex={130}>\n <Flex sx={{ mt: '20px' }}>\n <Text sx={{ fontWeight: 700 }}> Transferring: </Text>\n </Flex>\n <Flex sx={{ flexDirection: 'column', alignItems: 'center', mt: '30px', mr: '10px' }}>\n <Text sx={{ fontWeight: 700, fontSize: '25px' }}>\n {lpToken?.symbol} #{userBill?.id}\n </Text>\n <Flex sx={{ mt: '5px' }}>\n <Flex sx={{ flexDirection: 'column', mr: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Vesting time</Text>\n {getPendingVestingString(userBill)}\n </Flex>\n <Flex sx={{ flexDirection: 'column', ml: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Pending</Text>\n <Flex>\n <TokenImage\n symbol={userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken?.symbol}\n size={20}\n chain={userBill?.bond?.chainId}\n />\n <Text sx={{ fontWeight: 700, ml: '5px' }}>{pending}</Text>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ flexDirection: 'column', mt: '30px' }}>\n <Text sx={{ fontWeight: 700 }}>Receiving Address:</Text>\n <Input\n mt=\"10px\"\n size=\"lg\"\n placeholder={'Paste the address here'}\n value={toAddress}\n onChange={(e: any) => setToAddress(e.target.value)}\n style={{ width: '345px', border: 'none' }}\n />\n </Flex>\n <Flex sx={{ mt: '15px' }}>\n <Text sx={{ lineHeight: '18px', fontSize: '12px', color: 'rgba(223, 65, 65, 1)' }}>\n <Text\n sx={{ display: 'block', width: '100%', fontWeight: 700, fontSize: '13px', color: 'rgba(223, 65, 65, 1)' }}\n >\n WARNING\n </Text>\n When transfering the NFT all pending rewards will also be transfered to the receiver address.\n </Text>\n </Flex>\n <Flex\n onClick={() => setConfirmSend((prev) => !prev)}\n sx={{ mt: '20px', cursor: 'pointer', alignItems: 'center' }}\n >\n <CheckBox checked={confirmSend} />\n <Text sx={{ ml: '10px', fontSize: '12px', fontWeight: 500, lineHeight: '18px' }}>\n I understand the new wallet gains ownership of all unclaimed assets.\n </Text>\n </Flex>\n <Flex sx={{ justifyContent: 'center', mt: '15px' }}>\n <TransferAction userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n </Flex>\n </Modal>\n )\n}\n\nexport default React.memo(TransferModal)\n"],"names":["_jsxs","_jsx","CheckBox"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/YourBondsModal/components/TransferBondModal/index.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport CheckBox from '../../../../components/uikit-sdk/Checkbox'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { Input } from '../../../../components/uikit-sdk/Input'\nimport TransferAction from './TransferAction'\nimport { getPendingVestingString } from '../../../../utils/displayHelpers'\n\ninterface TransferBillModalProps {\n onDismiss?: () => void\n userBill?: UserBill\n}\n\nconst TransferModal: React.FC<TransferBillModalProps> = ({ onDismiss, userBill }) => {\n // State\n const [confirmSend, setConfirmSend] = useState(false)\n const [toAddress, setToAddress] = useState('')\n\n // Data\n const bond = userBill?.bond\n const chainId = bond?.chainId\n const { lpToken, earnToken } = userBill?.bond ?? {}\n const pending =\n chainId &&\n getBalanceNumber(new BigNumber(userBill?.payout ?? 0), earnToken?.decimals?.[chainId as ChainId] ?? 18)?.toFixed(4)\n return (\n <Modal onDismiss={onDismiss} title=\"Transfer Bond\" zIndex={130}>\n <Flex sx={{ mt: '20px' }}>\n <Text sx={{ fontWeight: 700 }}> Transferring: </Text>\n </Flex>\n <Flex sx={{ flexDirection: 'column', alignItems: 'center', mt: '30px', mr: '10px' }}>\n <Text sx={{ fontWeight: 700, fontSize: '25px' }}>\n {lpToken?.symbol} #{userBill?.id}\n </Text>\n <Flex sx={{ mt: '5px' }}>\n <Flex sx={{ flexDirection: 'column', mr: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Vesting time</Text>\n {getPendingVestingString(userBill)}\n </Flex>\n <Flex sx={{ flexDirection: 'column', ml: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Pending</Text>\n <Flex>\n <TokenImage\n symbol={userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken?.symbol}\n size={20}\n chain={userBill?.bond?.chainId}\n />\n <Text sx={{ fontWeight: 700, ml: '5px' }}>{pending}</Text>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ flexDirection: 'column', mt: '30px' }}>\n <Text sx={{ fontWeight: 700 }}>Receiving Address:</Text>\n <Input\n mt=\"10px\"\n size=\"lg\"\n placeholder={'Paste the address here'}\n value={toAddress}\n onChange={(e: any) => setToAddress(e.target.value)}\n style={{ width: '345px', border: 'none' }}\n />\n </Flex>\n <Flex sx={{ mt: '15px' }}>\n <Text sx={{ lineHeight: '18px', fontSize: '12px', color: 'rgba(223, 65, 65, 1)' }}>\n <Text\n sx={{ display: 'block', width: '100%', fontWeight: 700, fontSize: '13px', color: 'rgba(223, 65, 65, 1)' }}\n >\n WARNING\n </Text>\n When transfering the NFT all pending rewards will also be transfered to the receiver address.\n </Text>\n </Flex>\n <Flex\n onClick={() => setConfirmSend((prev) => !prev)}\n sx={{ mt: '20px', cursor: 'pointer', alignItems: 'center' }}\n >\n <CheckBox checked={confirmSend} />\n <Text sx={{ ml: '10px', fontSize: '12px', fontWeight: 500, lineHeight: '18px' }}>\n I understand the new wallet gains ownership of all unclaimed assets.\n </Text>\n </Flex>\n <Flex sx={{ justifyContent: 'center', mt: '15px' }}>\n <TransferAction userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n </Flex>\n </Modal>\n )\n}\n\nexport default React.memo(TransferModal)\n"],"names":["_jsxs","_jsx","CheckBox"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Ape Bond SDK",
|
|
4
4
|
"author": "Ape Bond",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "3.3.0-test.
|
|
6
|
+
"version": "3.3.0-test.5",
|
|
7
7
|
"module": "dist/main.js",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"types": "dist/main.d.ts",
|
|
@@ -61,6 +61,8 @@
|
|
|
61
61
|
"@types/dom-to-image": "^2.6.7",
|
|
62
62
|
"@types/lodash": "^4.17.6",
|
|
63
63
|
"@types/node": "^24.0.13",
|
|
64
|
+
"@types/react": "19.2.14",
|
|
65
|
+
"@types/react-dom": "19.2.3",
|
|
64
66
|
"@vitejs/plugin-react": "^4.2.1",
|
|
65
67
|
"axios": "1.18.1",
|
|
66
68
|
"eslint": "^9.28.0",
|
|
@@ -69,17 +71,15 @@
|
|
|
69
71
|
"husky": "^9.0.11",
|
|
70
72
|
"lint-staged": "^16.1.0",
|
|
71
73
|
"prettier": "^3.3.3",
|
|
74
|
+
"react": "19.2.4",
|
|
75
|
+
"react-dom": "19.2.4",
|
|
72
76
|
"rimraf": "5.0.10",
|
|
73
77
|
"rollup": "^4.14.0",
|
|
74
78
|
"rollup-plugin-scss": "^4.0.0",
|
|
75
79
|
"sass": "^1.77.7",
|
|
76
80
|
"typescript": "^5.0.0",
|
|
77
81
|
"typescript-eslint": "^8.34.0",
|
|
78
|
-
"vite": "7.3.5"
|
|
79
|
-
"react": "19.2.4",
|
|
80
|
-
"react-dom": "19.2.4",
|
|
81
|
-
"@types/react": "19.2.14",
|
|
82
|
-
"@types/react-dom": "19.2.3"
|
|
82
|
+
"vite": "7.3.5"
|
|
83
83
|
},
|
|
84
84
|
"dependencies": {
|
|
85
85
|
"@ape.swap/apeswap-lists": "4.5.11",
|
|
@@ -90,7 +90,6 @@
|
|
|
90
90
|
"framer-motion": "^11.3.2",
|
|
91
91
|
"lightweight-charts": "4.1.5",
|
|
92
92
|
"lodash": "^4.17.21",
|
|
93
|
-
"numbro": "^2.5.0",
|
|
94
93
|
"primereact": "10.9.7",
|
|
95
94
|
"react-chartjs-2": "5.3.1",
|
|
96
95
|
"swiper": "12.1.3",
|