@orderly.network/ui-connector 2.0.7 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +0 -11
- package/dist/index.d.ts +0 -11
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -7
package/dist/index.d.mts
CHANGED
|
@@ -40,7 +40,6 @@ type alertMessages = {
|
|
|
40
40
|
enableTrading?: string;
|
|
41
41
|
signin?: string;
|
|
42
42
|
};
|
|
43
|
-
|
|
44
43
|
type AuthGuardProps$2 = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
45
44
|
fallback?: (props: {
|
|
46
45
|
validating: boolean;
|
|
@@ -82,16 +81,6 @@ type GuardViewProps = {
|
|
|
82
81
|
};
|
|
83
82
|
|
|
84
83
|
type AuthGuardProps$1 = {
|
|
85
|
-
/** default value is
|
|
86
|
-
* ```ts
|
|
87
|
-
* {
|
|
88
|
-
* connectWallet: "Please connect wallet before starting to trade",
|
|
89
|
-
* signIn: "Please sign in before starting to trade",
|
|
90
|
-
* enableTrading: "Please sign in before starting to trade",
|
|
91
|
-
* wrongNetwork: "Please switch to a supported network to continue.",
|
|
92
|
-
* }
|
|
93
|
-
* ```
|
|
94
|
-
*/
|
|
95
84
|
hint?: {
|
|
96
85
|
connectWallet?: string;
|
|
97
86
|
signIn?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -40,7 +40,6 @@ type alertMessages = {
|
|
|
40
40
|
enableTrading?: string;
|
|
41
41
|
signin?: string;
|
|
42
42
|
};
|
|
43
|
-
|
|
44
43
|
type AuthGuardProps$2 = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
45
44
|
fallback?: (props: {
|
|
46
45
|
validating: boolean;
|
|
@@ -82,16 +81,6 @@ type GuardViewProps = {
|
|
|
82
81
|
};
|
|
83
82
|
|
|
84
83
|
type AuthGuardProps$1 = {
|
|
85
|
-
/** default value is
|
|
86
|
-
* ```ts
|
|
87
|
-
* {
|
|
88
|
-
* connectWallet: "Please connect wallet before starting to trade",
|
|
89
|
-
* signIn: "Please sign in before starting to trade",
|
|
90
|
-
* enableTrading: "Please sign in before starting to trade",
|
|
91
|
-
* wrongNetwork: "Please switch to a supported network to continue.",
|
|
92
|
-
* }
|
|
93
|
-
* ```
|
|
94
|
-
*/
|
|
95
84
|
hint?: {
|
|
96
85
|
connectWallet?: string;
|
|
97
86
|
signIn?: string;
|
package/dist/index.js
CHANGED
|
@@ -5,19 +5,20 @@ var ui = require('@orderly.network/ui');
|
|
|
5
5
|
var types = require('@orderly.network/types');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
var hooks = require('@orderly.network/hooks');
|
|
8
|
+
var i18n = require('@orderly.network/i18n');
|
|
8
9
|
var reactApp = require('@orderly.network/react-app');
|
|
9
10
|
var uiChainSelector = require('@orderly.network/ui-chain-selector');
|
|
10
11
|
|
|
11
|
-
var V=e=>{let{title:t,description:n}=e;return jsxRuntime.jsxs(ui.Box,{position:"relative",className:"oui-pl-8",children:[jsxRuntime.jsxs(ui.Box,{children:[jsxRuntime.jsx(ui.Text,{as:"div",intensity:98,size:"sm",children:t}),jsxRuntime.jsx(ui.Text,{as:"div",intensity:54,size:"2xs",children:n})]}),jsxRuntime.jsx(me,{...e})]})},me=e=>{let{active:t,isLoading:n,isCompleted:i}=e;return jsxRuntime.jsx(ui.Match,{className:"oui-absolute oui-left-0 oui-top-1 oui-z-10",value:()=>i?"completed":n?"loading":t?"active":"normal",case:{loading:jsxRuntime.jsx("div",{children:jsxRuntime.jsx(ui.Spinner,{size:"sm",className:"oui-ml-1"})}),completed:jsxRuntime.jsx("div",{children:jsxRuntime.jsx(ui.CheckedCircleFillIcon,{opacity:1,className:"oui-text-primary"})})},default:jsxRuntime.jsx(fe,{active:!!t})})},fe=({active:e,className:t})=>jsxRuntime.jsx("div",{className:ui.cn("oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1",t,e?"oui-bg-primary-light":"oui-bg-base-2")});var B=e=>{let{initAccountState:t=types.AccountStatusEnum.NotConnected}=e,[n,i]=react.useState(true),o=hooks.useEventEmitter(),{state:u,account:g}=hooks.useAccount(),[c,d]=react.useState(t),[r,m]=react.useState(0),[s,p]=react.useState(false),[x]=hooks.useLocalStorage("orderly-first-show-wallet-connector-dialog",void 0);react.useEffect(()=>()=>{localStorage.setItem("orderly-first-show-wallet-connector-dialog","1");},[]),react.useEffect(()=>{d(u.status);},[u]);let y=react.useMemo(()=>{let a=[];return t<types.AccountStatusEnum.SignedIn&&a.push({key:"signIn",title:"Sign In",description:"Confirm you are the owner of this wallet"}),t<types.AccountStatusEnum.EnableTrading&&a.push({key:"enableTrading",title:"Enable Trading",description:"Enable secure access to our API for lightning fast trading"}),a},[t]),I=()=>(p(true),e.enableTrading(n).then(async a=>{p(false),m(C=>C+1);try{await e.enableTradingComplted?.();}catch{}typeof e.onCompleted=="function"?e.onCompleted():typeof e.close=="function"&&e.close();},a=>{if(p(false),a!==-1){if(a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){o.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:g.address});return}ui.toast.error(Y(a));}}).catch(a=>{p(false);})),P=()=>(p(true),e.signIn().then(a=>{m(C=>C+1),I();},a=>{if(p(false),a!==-1){if(a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){o.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:g.address});return}ui.toast.error(Y(a));}}).catch(a=>{p(false);}));return jsxRuntime.jsxs(ui.Box,{id:"oui-wallet-connect-dialog-content",className:"oui-font-semibold",children:[jsxRuntime.jsx(ui.Text,{intensity:54,size:"xs",children:"Your previous access has expired, you will receive a signature request to enable trading. Signing is free and will not send a transaction."}),jsxRuntime.jsxs(ui.Box,{p:4,my:6,intensity:600,r:"lg",className:"oui-space-y-5",position:"relative",children:[y.map((a,C)=>jsxRuntime.jsx(V,{title:a.title,description:a.description,isCompleted:r>C,active:r===C,isLoading:s&&r===C},a.key)),y.length>1&&jsxRuntime.jsx(ui.Box,{position:"absolute",height:"38px",left:28,top:18,zIndex:0,children:jsxRuntime.jsx(ui.Divider,{lineStyle:"dashed",direction:"vertical",intensity:16,className:"oui-h-full"})})]}),e.showRefCodeInput&&y.length==2&&jsxRuntime.jsx(Ae,{...e}),x&&jsxRuntime.jsxs(ui.Flex,{justify:"between",itemAlign:"center",children:[jsxRuntime.jsx(Ne,{}),jsxRuntime.jsx(ui.Switch,{color:"primary",checked:n,onCheckedChange:i,disabled:s,className:"data-[state=checked]:oui-bg-primary-darken"})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",mt:8,children:jsxRuntime.jsx(ui.Box,{width:"45%",children:jsxRuntime.jsx(Ee,{state:c,signIn:P,enableTrading:I,loading:s,disabled:c>=types.AccountStatusEnum.EnableTrading})})})]})},Ee=({state:e,signIn:t,enableTrading:n,loading:i,disabled:o})=>jsxRuntime.jsx(ui.Match,{value:()=>e<=types.AccountStatusEnum.NotSignedIn?"signIn":"enableTrading",case:{signIn:jsxRuntime.jsx(ui.Button,{fullWidth:true,onClick:()=>t(),loading:i,disabled:o,children:"Sign In"}),enableTrading:jsxRuntime.jsx(ui.Button,{fullWidth:true,onClick:()=>n(),loading:i,disabled:o,children:"Enable Trading"})}}),Ae=e=>jsxRuntime.jsx(ui.TextField,{placeholder:"Referral code (Optional)",fullWidth:true,label:"",value:e.refCode,onChange:t=>{e.setRefCode(t.target.value);},classNames:{label:"oui-text-base-contrast-54 oui-text-xs",input:"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm"},formatters:[ui.inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)],onClear:()=>{e.setRefCode("");},autoComplete:"off",helpText:e.helpText,className:"oui-mb-4",color:e.helpText?"danger":void 0}),Ne=()=>jsxRuntime.jsx(ui.Tooltip,{content:"Toggle this option to skip these steps next time you want to trade.",className:"oui-max-w-[300px]",children:jsxRuntime.jsx("button",{onClick:()=>{window.innerWidth>768||ui.modal.alert({title:"Remember me",message:jsxRuntime.jsx("span",{className:"oui-text-2xs oui-text-base-contrast/60",children:"Toggle this option to skip these steps next time you want to trade."})});},children:jsxRuntime.jsx(ui.Text,{intensity:54,size:"xs",className:"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36",children:"Remember me"})})});function Y(e){Object.keys(e).forEach(n=>{});let t="Something went wrong";return e.toString().includes("rejected")&&(t="User rejected the request."),ui.capitalizeFirstLetter(t)??t}var L=()=>{let{account:e,state:t,createOrderlyKey:n,createAccount:i}=hooks.useAccount(),[o,u]=react.useState(""),[g,c]=react.useState(""),{trigger:d}=hooks.useLazyQuery(`/v1/public/referral/verify_ref_code?referral_code=${o}`);react.useEffect(()=>{let w=localStorage.getItem("referral_code");w!=null&&u(w);},[]);let{referral_code:r,isLoading:m}=hooks.useGetReferralCode(e.accountId),[s,{error:p,isMutating:x}]=hooks.useMutation("/v1/referral/bind","POST");react.useEffect(()=>{o.length===0&&c("");},[o]);let y=()=>{ui.toast.success("Wallet connected"),o.length>=4&&o.length<=10&&s({referral_code:o}).finally(()=>{localStorage.removeItem("referral_code");});},I=async()=>{if(o.length===0)return Promise.resolve(void 0);if(o.length>0&&(o.length<4||o.length>10))return Promise.resolve("The referral_code must be 4 to 10 characters long, only accept upper case roman characters and numbers");let{exist:w}=await d();return w===false?Promise.resolve("This referral code does not exist."):Promise.resolve(void 0)},P=(r?.length||0)===0&&!m,a=async()=>{if(P){let w=await I();if(typeof w<"u")return c(w),Promise.reject(-1)}return c(""),i()};return {enableTrading:async w=>{if(P){let F=await I();if(typeof F<"u")return c(F),Promise.reject(-1)}return c(""),n(w)},initAccountState:t.status,signIn:a,enableTradingComplted:y,refCode:o,setRefCode:u,helpText:g,showRefCodeInput:P}};var v="walletConnector",R="walletConnectorSheet",O=e=>{let t=L();return jsxRuntime.jsx(B,{...t,...e})};ui.registerSimpleDialog(v,O,{size:"sm",title:"Connect wallet"});ui.registerSimpleSheet(R,O,{title:"Connect wallet"});var X={connectWallet:"Connect wallet",switchChain:"Wrong network",enableTrading:"Enable trading",signin:"Sign in"},j={connectWallet:"Please Connect wallet before starting to trade",switchChain:"Please switch to a supported network to continue",enableTrading:"Please Enable trading before starting to trade",signin:"Please sign in before starting to trade"};var T=e=>{let{status:t,buttonProps:n,fallback:i,descriptions:o,classNames:u,networkId:g,id:c,bridgeLessOnly:d}=e,{state:r}=hooks.useAccount(),{wrongNetwork:m,disabledConnect:s}=reactApp.useAppContext(),p=react.useMemo(()=>t===void 0?r.status===types.AccountStatusEnum.EnableTradingWithoutConnected?types.AccountStatusEnum.EnableTradingWithoutConnected:types.AccountStatusEnum.EnableTrading:t,[t,r.status]),x={...X,...e.labels},y=react.useMemo(()=>typeof i<"u"?i({validating:r.validating,status:r.status,wrongNetwork:m}):r.validating&&!s?jsxRuntime.jsx(E,{angle:45,disabled:true,loading:true,description:o?.connectWallet,id:c,type:"button",...n,children:x.connectWallet}):jsxRuntime.jsx(Ze,{bridgeLessOnly:d,status:r.status,buttonProps:{...n,id:c,type:"button"},wrongNetwork:m,networkId:e.networkId,labels:x,descriptions:o,disabledConnect:s}),[r.status,r.validating,n,m]);return jsxRuntime.jsx(ui.Either,{value:r.status>=p&&!m&&!s,left:y,children:e.children})},Ze=e=>{let{buttonProps:t,labels:n,descriptions:i}=e,{connectWallet:o}=reactApp.useAppContext(),{account:u}=hooks.useAccount(),{isMobile:g}=ui.useScreen(),c=hooks.useMediaQuery(types.MEDIA_TABLET),d=()=>{ui.modal.show(c?R:v).then(s=>{},s=>{});},r=async()=>{let s=await o();s&&(s.wrongNetwork?m():(s?.status??types.AccountStatusEnum.NotConnected)<types.AccountStatusEnum.EnableTrading&&d());},m=()=>{u.once("validate:end",s=>{s<types.AccountStatusEnum.EnableTrading?d():ui.toast.success("Wallet connected");}),ui.modal.show(g?uiChainSelector.ChainSelectorSheetId:uiChainSelector.ChainSelectorDialogId,{networkId:e.networkId,bridgeLessOnly:e.bridgeLessOnly}).then(s=>{s.wrongNetwork||e.status>=types.AccountStatusEnum.Connected&&(e.status<types.AccountStatusEnum.EnableTrading?d():ui.toast.success("Wallet connected"));},s=>{});};return e.wrongNetwork&&!e.disabledConnect?jsxRuntime.jsx(E,{color:"warning",onClick:()=>{m();},description:i?.switchChain,...t,children:n.switchChain}):jsxRuntime.jsx(ui.Match,{value:e.status,case:s=>{if(s<=types.AccountStatusEnum.NotConnected||e.disabledConnect)return jsxRuntime.jsx(E,{size:"lg",onClick:()=>{r();},variant:e.disabledConnect?void 0:"gradient",angle:45,description:i?.connectWallet,disabled:e.disabledConnect,...t,children:n.connectWallet});if(s<=types.AccountStatusEnum.NotSignedIn)return jsxRuntime.jsx(E,{size:"lg",onClick:()=>{d();},angle:45,description:i?.signin,...t,children:n.signin})},default:jsxRuntime.jsx(E,{size:"lg",description:i?.enableTrading,...t,onClick:()=>d(),children:n.enableTrading})})};T.displayName="AuthGuard";var E=e=>{let{description:t,...n}=e;return jsxRuntime.jsxs(ui.Flex,{direction:"column",children:[jsxRuntime.jsx(ui.Button,{...n}),!!t&&jsxRuntime.jsx(ui.Box,{mt:4,className:"oui-leading-none",style:{lineHeight:0},children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:t})})]})};var rt=e=>{let{status:t,labels:n,description:i,dataSource:o,...u}=e,{state:g}=hooks.useAccount(),{wrongNetwork:c,disabledConnect:d}=reactApp.useAppContext(),r=react.useMemo(()=>t===void 0?g.status===types.AccountStatusEnum.EnableTradingWithoutConnected?types.AccountStatusEnum.EnableTradingWithoutConnected:types.AccountStatusEnum.EnableTrading:t,[t,g.status]),m=reactApp.useDataTap(o,{accountStatus:r}),s=c||d||g.status<r||e.ignoreLoadingCheck;return jsxRuntime.jsx(ui.DataTable,{dataSource:m,ignoreLoadingCheck:s,emptyView:jsxRuntime.jsx(at,{status:r,description:i,labels:n,className:e.classNames?.authGuardDescription,visible:!g.validating}),manualPagination:true,...u})},at=e=>{let t={...j,...e.description};return e.visible?jsxRuntime.jsx(ui.Flex,{py:8,children:jsxRuntime.jsx(T,{status:e.status,labels:e.labels,descriptions:t,buttonProps:{size:"md"},children:jsxRuntime.jsx(ui.ExtensionSlot,{position:ui.ExtensionPositionEnum.EmptyDataIdentifier})})}):null};var re=e=>{let{hint:t={connectWallet:"Please connect wallet before starting to trade",signIn:"Please sign in before starting to trade",enableTrading:"Please sign in before starting to trade",wrongNetwork:"Please switch to a supported network to continue."},status:n}=e;return jsxRuntime.jsx(ui.Box,{my:8,children:jsxRuntime.jsx(T,{status:n,descriptions:{...t,switchChain:t.wrongNetwork},children:e.children||jsxRuntime.jsx(ui.EmptyDataState,{})})})};re.displayName="AuthGuardEmpty";var le=e=>{let{opactiy:t=90,tooltip:n={connectWallet:"Please connect wallet before set up",signIn:"Please sign in before set up",enableTrading:"Please enable trading before set up",wrongNetwork:"Please switch to a supported network to set up"}}=e,[i,o]=react.useState(false),{state:u}=hooks.useAccount(),g=true,{wrongNetwork:c}=reactApp.useAppContext(),d=react.useMemo(()=>{if(c)return n?.wrongNetwork;switch(u.status){case types.AccountStatusEnum.NotConnected:return n?.connectWallet;case types.AccountStatusEnum.NotSignedIn:return n?.signIn;case types.AccountStatusEnum.DisabledTrading:return n?.enableTrading;case types.AccountStatusEnum.EnableTrading:return "";default:return e.content}},[e.content,u,g,n]),r=react.useMemo(()=>{switch(u.status){case types.AccountStatusEnum.NotConnected:case types.AccountStatusEnum.NotSignedIn:return t;case types.AccountStatusEnum.EnableTrading:return;default:return}},[e.opactiy,u,g]);return jsxRuntime.jsx(ui.Tooltip,{open:d?i:false,onOpenChange:o,content:d,className:"oui-text-2xs",align:e.align,alignOffset:e.alignOffset,side:e.side,sideOffset:e.sideOffset,children:jsxRuntime.jsx("div",{style:{opacity:r},children:e.children})})};le.displayName="AuthGuardTooltip";
|
|
12
|
+
var Q=e=>{let{title:t,description:n}=e;return jsxRuntime.jsxs(ui.Box,{position:"relative",className:"oui-pl-8",children:[jsxRuntime.jsxs(ui.Box,{children:[jsxRuntime.jsx(ui.Text,{as:"div",intensity:98,size:"sm",children:t}),jsxRuntime.jsx(ui.Text,{as:"div",intensity:54,size:"2xs",children:n})]}),jsxRuntime.jsx(he,{...e})]})},he=e=>{let{active:t,isLoading:n,isCompleted:o}=e;return jsxRuntime.jsx(ui.Match,{className:"oui-absolute oui-left-0 oui-top-1 oui-z-10",value:()=>o?"completed":n?"loading":t?"active":"normal",case:{loading:jsxRuntime.jsx("div",{children:jsxRuntime.jsx(ui.Spinner,{size:"sm",className:"oui-ml-1"})}),completed:jsxRuntime.jsx("div",{children:jsxRuntime.jsx(ui.CheckedCircleFillIcon,{opacity:1,className:"oui-text-primary"})})},default:jsxRuntime.jsx(be,{active:!!t})})},be=({active:e,className:t})=>jsxRuntime.jsx("div",{className:ui.cn("oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1",t,e?"oui-bg-primary-light":"oui-bg-base-2")});var O=e=>{let{initAccountState:t=types.AccountStatusEnum.NotConnected}=e,[n,o]=react.useState(true),r=hooks.useEventEmitter(),{t:c}=i18n.useTranslation(),{state:g,account:d}=hooks.useAccount(),[m,a]=react.useState(t),[l,f]=react.useState(0),[s,h]=react.useState(false),[I]=hooks.useLocalStorage("orderly-first-show-wallet-connector-dialog",void 0);react.useEffect(()=>()=>{localStorage.setItem("orderly-first-show-wallet-connector-dialog","1");},[]),react.useEffect(()=>{a(g.status);},[g]);let T=react.useMemo(()=>{let i=[];return t<types.AccountStatusEnum.SignedIn&&i.push({key:"signIn",title:c("connector.signIn"),description:c("connector.signIn.description")}),t<types.AccountStatusEnum.EnableTrading&&i.push({key:"enableTrading",title:c("connector.enableTrading"),description:c("connector.enableTrading.description")}),i},[t,c]),k=()=>(h(true),e.enableTrading(n).then(async i=>{h(false),f(w=>w+1);try{await e.enableTradingComplted?.();}catch{}typeof e.onCompleted=="function"?e.onCompleted():typeof e.close=="function"&&e.close();},i=>{if(h(false),i!==-1){if(i.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){r.emit("wallet:sign-message-with-ledger-error",{message:i.message,userAddress:d.address});return}ui.toast.error(X(i));}}).catch(i=>{h(false);})),W=()=>(h(true),e.signIn().then(i=>{f(w=>w+1),k();},i=>{if(h(false),i!==-1){if(i.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){r.emit("wallet:sign-message-with-ledger-error",{message:i.message,userAddress:d.address});return}ui.toast.error(X(i));}}).catch(i=>{h(false);}));return jsxRuntime.jsxs(ui.Box,{id:"oui-wallet-connect-dialog-content",className:"oui-font-semibold",children:[jsxRuntime.jsx(ui.Text,{intensity:54,size:"xs",children:c("connector.expired")}),jsxRuntime.jsxs(ui.Box,{p:4,my:6,intensity:600,r:"lg",className:"oui-space-y-5",position:"relative",children:[T.map((i,w)=>jsxRuntime.jsx(Q,{title:i.title,description:i.description,isCompleted:l>w,active:l===w,isLoading:s&&l===w},i.key)),T.length>1&&jsxRuntime.jsx(ui.Box,{position:"absolute",height:"38px",left:28,top:18,zIndex:0,children:jsxRuntime.jsx(ui.Divider,{lineStyle:"dashed",direction:"vertical",intensity:16,className:"oui-h-full"})})]}),e.showRefCodeInput&&T.length==2&&jsxRuntime.jsx(ve,{...e}),I&&jsxRuntime.jsxs(ui.Flex,{justify:"between",itemAlign:"center",children:[jsxRuntime.jsx(Me,{}),jsxRuntime.jsx(ui.Switch,{color:"primary",checked:n,onCheckedChange:o,disabled:s,className:"data-[state=checked]:oui-bg-primary-darken"})]}),jsxRuntime.jsx(ui.Flex,{justify:"center",mt:8,children:jsxRuntime.jsx(ui.Box,{width:"45%",children:jsxRuntime.jsx(Ee,{state:m,signIn:W,enableTrading:k,loading:s,disabled:m>=types.AccountStatusEnum.EnableTrading})})})]})},Ee=({state:e,signIn:t,enableTrading:n,loading:o,disabled:r})=>{let{t:c}=i18n.useTranslation();return jsxRuntime.jsx(ui.Match,{value:()=>e<=types.AccountStatusEnum.NotSignedIn?"signIn":"enableTrading",case:{signIn:jsxRuntime.jsx(ui.Button,{fullWidth:true,onClick:()=>t(),loading:o,disabled:r,children:c("connector.signIn")}),enableTrading:jsxRuntime.jsx(ui.Button,{fullWidth:true,onClick:()=>n(),loading:o,disabled:r,children:c("connector.enableTrading")})}})},ve=e=>{let{t}=i18n.useTranslation();return jsxRuntime.jsx(ui.TextField,{placeholder:t("connector.referralCode.placeholder"),fullWidth:true,label:"",value:e.refCode,onChange:n=>{e.setRefCode(n.target.value);},classNames:{label:"oui-text-base-contrast-54 oui-text-xs",input:"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm"},formatters:[ui.inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)],onClear:()=>{e.setRefCode("");},autoComplete:"off",helpText:e.helpText,className:"oui-mb-4",color:e.helpText?"danger":void 0})},Me=()=>{let{t:e}=i18n.useTranslation(),t=()=>{window.innerWidth>768||ui.modal.alert({title:e("connector.rememberMe"),message:jsxRuntime.jsx("span",{className:"oui-text-2xs oui-text-base-contrast/60",children:e("connector.rememberMe.description")})});};return jsxRuntime.jsx(ui.Tooltip,{content:e("connector.rememberMe.description"),className:"oui-max-w-[300px]",children:jsxRuntime.jsx("button",{onClick:t,children:jsxRuntime.jsx(ui.Text,{intensity:54,size:"xs",className:"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36",children:e("connector.rememberMe")})})})};function X(e){Object.keys(e).forEach(n=>{});let t=i18n.i18n.t("connector.somethingWentWrong");return e.toString().includes("rejected")&&(t=i18n.i18n.t("connector.userRejected")),ui.capitalizeFirstLetter(t)??t}var L=()=>{let{account:e,state:t,createOrderlyKey:n,createAccount:o}=hooks.useAccount(),[r,c]=react.useState(""),[g,d]=react.useState(""),{t:m}=i18n.useTranslation(),{trigger:a}=hooks.useLazyQuery(`/v1/public/referral/verify_ref_code?referral_code=${r}`);react.useEffect(()=>{let y=localStorage.getItem("referral_code");y!=null&&c(y);},[]);let{referral_code:l,isLoading:f}=hooks.useGetReferralCode(e.accountId),[s,{error:h,isMutating:I}]=hooks.useMutation("/v1/referral/bind","POST");react.useEffect(()=>{r.length===0&&d("");},[r]);let T=()=>{ui.toast.success(m("connector.walletConnected")),r.length>=4&&r.length<=10&&s({referral_code:r}).finally(()=>{localStorage.removeItem("referral_code");});},k=async()=>{if(r.length===0)return Promise.resolve(void 0);if(r.length>0&&(r.length<4||r.length>10))return Promise.resolve(m("connector.referralCode.invalid"));let{exist:y}=await a();return y===false?Promise.resolve(m("connector.referralCode.notExist")):Promise.resolve(void 0)},W=(l?.length||0)===0&&!f,i=async()=>{if(W){let y=await k();if(typeof y<"u")return d(y),Promise.reject(-1)}return d(""),o()};return {enableTrading:async y=>{if(W){let _=await k();if(typeof _<"u")return d(_),Promise.reject(-1)}return d(""),n(y)},initAccountState:t.status,signIn:i,enableTradingComplted:T,refCode:r,setRefCode:c,helpText:g,showRefCodeInput:W}};var B="walletConnector",G="walletConnectorSheet",D=e=>{let t=L();return jsxRuntime.jsx(O,{...t,...e})};ui.registerSimpleDialog(B,D,{size:"sm",title:()=>i18n.i18n.t("connector.connectWallet")});ui.registerSimpleSheet(G,D,{title:()=>i18n.i18n.t("connector.connectWallet")});var S=e=>{let{status:t,buttonProps:n,fallback:o,descriptions:r,classNames:c,networkId:g,id:d,bridgeLessOnly:m}=e,{t:a}=i18n.useTranslation(),{state:l}=hooks.useAccount(),{wrongNetwork:f,disabledConnect:s}=reactApp.useAppContext(),h=react.useMemo(()=>t===void 0?l.status===types.AccountStatusEnum.EnableTradingWithoutConnected?types.AccountStatusEnum.EnableTradingWithoutConnected:types.AccountStatusEnum.EnableTrading:t,[t,l.status]),I={connectWallet:a("connector.connectWallet"),switchChain:a("connector.wrongNetwork"),enableTrading:a("connector.enableTrading"),signin:a("connector.signIn"),...e.labels},T=react.useMemo(()=>typeof o<"u"?o({validating:l.validating,status:l.status,wrongNetwork:f}):l.validating&&!s?jsxRuntime.jsx(A,{angle:45,disabled:true,loading:true,description:r?.connectWallet,id:d,type:"button",...n,children:I.connectWallet}):jsxRuntime.jsx(je,{bridgeLessOnly:m,status:l.status,buttonProps:{...n,id:d,type:"button"},wrongNetwork:f,networkId:e.networkId,labels:I,descriptions:r,disabledConnect:s}),[l.status,l.validating,n,f]);return jsxRuntime.jsx(ui.Either,{value:l.status>=h&&!f&&!s,left:T,children:e.children})},je=e=>{let{buttonProps:t,labels:n,descriptions:o}=e,{t:r}=i18n.useTranslation(),{connectWallet:c}=reactApp.useAppContext(),{account:g}=hooks.useAccount(),{isMobile:d}=ui.useScreen(),m=hooks.useMediaQuery(types.MEDIA_TABLET),a=()=>{ui.modal.show(m?G:B).then(s=>{},s=>{});},l=async()=>{let s=await c();s&&(s.wrongNetwork?f():(s?.status??types.AccountStatusEnum.NotConnected)<types.AccountStatusEnum.EnableTrading&&a());},f=()=>{g.once("validate:end",s=>{s<types.AccountStatusEnum.EnableTrading?a():ui.toast.success(r("connector.walletConnected"));}),ui.modal.show(d?uiChainSelector.ChainSelectorSheetId:uiChainSelector.ChainSelectorDialogId,{networkId:e.networkId,bridgeLessOnly:e.bridgeLessOnly}).then(s=>{s.wrongNetwork||e.status>=types.AccountStatusEnum.Connected&&(e.status<types.AccountStatusEnum.EnableTrading?a():ui.toast.success(r("connector.walletConnected")));},s=>{});};return e.wrongNetwork&&!e.disabledConnect?jsxRuntime.jsx(A,{color:"warning",onClick:()=>{f();},description:o?.switchChain,...t,children:n.switchChain}):jsxRuntime.jsx(ui.Match,{value:e.status,case:s=>{if(s<=types.AccountStatusEnum.NotConnected||e.disabledConnect)return jsxRuntime.jsx(A,{size:"lg",onClick:()=>{l();},variant:e.disabledConnect?void 0:"gradient",angle:45,description:o?.connectWallet,disabled:e.disabledConnect,...t,children:n.connectWallet});if(s<=types.AccountStatusEnum.NotSignedIn)return jsxRuntime.jsx(A,{size:"lg",onClick:()=>{a();},angle:45,description:o?.signin,...t,children:n.signin})},default:jsxRuntime.jsx(A,{size:"lg",description:o?.enableTrading,...t,onClick:()=>a(),children:n.enableTrading})})};S.displayName="AuthGuard";var A=e=>{let{description:t,...n}=e;return jsxRuntime.jsxs(ui.Flex,{direction:"column",children:[jsxRuntime.jsx(ui.Button,{...n}),!!t&&jsxRuntime.jsx(ui.Box,{mt:4,className:"oui-leading-none",style:{lineHeight:0},children:jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:t})})]})};var dt=e=>{let{status:t,labels:n,description:o,dataSource:r,...c}=e,{state:g}=hooks.useAccount(),{wrongNetwork:d,disabledConnect:m}=reactApp.useAppContext(),a=react.useMemo(()=>t===void 0?g.status===types.AccountStatusEnum.EnableTradingWithoutConnected?types.AccountStatusEnum.EnableTradingWithoutConnected:types.AccountStatusEnum.EnableTrading:t,[t,g.status]),l=reactApp.useDataTap(r,{accountStatus:a}),f=d||m||g.status<a||e.ignoreLoadingCheck;return jsxRuntime.jsx(ui.DataTable,{dataSource:l,ignoreLoadingCheck:f,emptyView:jsxRuntime.jsx(ut,{status:a,description:o,labels:n,className:e.classNames?.authGuardDescription,visible:!g.validating}),manualPagination:true,...c})},ut=e=>{let{t}=i18n.useTranslation(),o={...{connectWallet:t("connector.connectWallet"),switchChain:t("connector.wrongNetwork"),enableTrading:t("connector.enableTrading"),signin:t("connector.signIn")},...e.description};return e.visible?jsxRuntime.jsx(ui.Flex,{py:8,children:jsxRuntime.jsx(S,{status:e.status,labels:e.labels,descriptions:o,buttonProps:{size:"md"},children:jsxRuntime.jsx(ui.ExtensionSlot,{position:ui.ExtensionPositionEnum.EmptyDataIdentifier})})}):null};var le=e=>{let{t}=i18n.useTranslation(),{hint:n={connectWallet:t("connector.trade.connectWallet.tooltip"),signIn:t("connector.trade.signIn.tooltip"),enableTrading:t("connector.trade.enableTrading.tooltip"),wrongNetwork:t("connector.wrongNetwork.tooltip")},status:o}=e;return jsxRuntime.jsx(ui.Box,{my:8,children:jsxRuntime.jsx(S,{status:o,descriptions:{...n,switchChain:n.wrongNetwork},children:e.children||jsxRuntime.jsx(ui.EmptyDataState,{})})})};le.displayName="AuthGuardEmpty";var ue=e=>{let{t}=i18n.useTranslation(),{opactiy:n=90,tooltip:o={connectWallet:t("connector.setUp.connectWallet.tooltip"),signIn:t("connector.setUp.signIn.tooltip"),enableTrading:t("connector.setUp.enableTrading.tooltip"),wrongNetwork:t("connector.wrongNetwork.tooltip")}}=e,[r,c]=react.useState(false),{state:g}=hooks.useAccount(),d=true,{wrongNetwork:m}=reactApp.useAppContext(),a=react.useMemo(()=>{if(m)return o?.wrongNetwork;switch(g.status){case types.AccountStatusEnum.NotConnected:return o?.connectWallet;case types.AccountStatusEnum.NotSignedIn:return o?.signIn;case types.AccountStatusEnum.DisabledTrading:return o?.enableTrading;case types.AccountStatusEnum.EnableTrading:return "";default:return e.content}},[e.content,g,d,o]),l=react.useMemo(()=>{switch(g.status){case types.AccountStatusEnum.NotConnected:case types.AccountStatusEnum.NotSignedIn:return n;case types.AccountStatusEnum.EnableTrading:return;default:return}},[e.opactiy,g,d]);return jsxRuntime.jsx(ui.Tooltip,{open:a?r:false,onOpenChange:c,content:a,className:"oui-text-2xs",align:e.align,alignOffset:e.alignOffset,side:e.side,sideOffset:e.sideOffset,children:jsxRuntime.jsx("div",{style:{opacity:l},children:e.children})})};ue.displayName="AuthGuardTooltip";
|
|
12
13
|
|
|
13
|
-
exports.AuthGuard =
|
|
14
|
-
exports.AuthGuardDataTable =
|
|
15
|
-
exports.AuthGuardEmpty =
|
|
16
|
-
exports.AuthGuardTooltip =
|
|
17
|
-
exports.WalletConnectContent =
|
|
18
|
-
exports.WalletConnectorModalId =
|
|
19
|
-
exports.WalletConnectorSheetId =
|
|
20
|
-
exports.WalletConnectorWidget =
|
|
14
|
+
exports.AuthGuard = S;
|
|
15
|
+
exports.AuthGuardDataTable = dt;
|
|
16
|
+
exports.AuthGuardEmpty = le;
|
|
17
|
+
exports.AuthGuardTooltip = ue;
|
|
18
|
+
exports.WalletConnectContent = O;
|
|
19
|
+
exports.WalletConnectorModalId = B;
|
|
20
|
+
exports.WalletConnectorSheetId = G;
|
|
21
|
+
exports.WalletConnectorWidget = D;
|
|
21
22
|
exports.useWalletConnectorBuilder = L;
|
|
22
23
|
//# sourceMappingURL=out.js.map
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/constants/message.ts","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","AccountStatusEnum","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","useAccount","useEventEmitter","useLocalStorage","WalletConnectContent","initAccountState","remember","setRemember","ee","accountState","account","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","createOrderlyKey","createAccount","refCode","setRefCode","helpText","setHelpText","verifyRefCode","referral_code","bindRefCode","updateOrderError","updateMutating","enableTradingComplted","checkRefCode","exist","showRefCodeInput","info","WalletConnectorModalId","WalletConnectorSheetId","WalletConnectorWidget","useMediaQuery","MEDIA_TABLET","Either","useScreen","useAppContext","ChainSelectorDialogId","ChainSelectorSheetId","LABELS","DESCRIPTIONS","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","disabledConnect","_status","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","value","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","ignoreLoadingCheck","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","open","setOpen","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n cn,\n Divider,\n Flex,\n Input,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { StepItem } from \"./step\";\nimport { useAccount, useEventEmitter, useLocalStorage } from \"@orderly.network/hooks\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: \"Sign In\",\n description: \"Confirm you are the owner of this wallet\",\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: \"Enable Trading\",\n description:\n \"Enable secure access to our API for lightning fast trading\",\n });\n }\n\n return steps;\n }, [initAccountState]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n console.log(res);\n setLoading(false);\n setActiveStep((step) => step + 1);\n try {\n await props.enableTradingComplted?.();\n } catch (e) {}\n if (typeof props.onCompleted === \"function\") {\n props.onCompleted();\n } else if (typeof props.close === \"function\") {\n props.close();\n }\n // props.onCompleted?.();\n },\n (reject) => {\n setLoading(false);\n if (reject === -1) return;\n\n if (reject.message.indexOf('Signing off chain messages with Ledger is not yet supported') !== -1) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {message: reject.message,userAddress: account.address});\n return;\n }\n toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onSignIn = () => {\n setLoading(true);\n return props\n .signIn()\n .then(\n (res) => {\n setActiveStep((step) => step + 1);\n onEnableTrading();\n },\n (reject) => {\n setLoading(false);\n\n if (reject === -1) return;\n if (reject.message.indexOf('Signing off chain messages with Ledger is not yet supported') !== -1) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {message: reject.message,userAddress: account.address});\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n console.log(\"state\", state);\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n Your previous access has expired, you will receive a signature request\n to enable trading. Signing is free and will not send a transaction.\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n return (\n <StepItem\n title={step.title}\n description={step.description}\n isCompleted={activeStep > index}\n key={step.key}\n active={activeStep === index}\n isLoading={loading && activeStep === index}\n />\n );\n })}\n {steps.length > 1 && (\n <Box\n position={\"absolute\"}\n height={\"38px\"}\n left={28}\n top={18}\n zIndex={0}\n >\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\n </Box>\n {props.showRefCodeInput && steps.length == 2 && (\n <ReferralCode {...props} />\n )}\n {firstShowDialog && (\n <Flex justify={\"between\"} itemAlign={\"center\"}>\n <RememberMe />\n <Switch\n color={\"primary\"}\n checked={remember}\n onCheckedChange={setRemember}\n disabled={loading}\n className=\"data-[state=checked]:oui-bg-primary-darken\"\n />\n </Flex>\n )}\n <Flex justify={\"center\"} mt={8}>\n <Box width={\"45%\"}>\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n />\n </Box>\n </Flex>\n </Box>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n disabled?: boolean;\n}> = ({ state, signIn, enableTrading, loading, disabled }) => {\n return (\n <Match\n value={() => {\n if (state <= AccountStatusEnum.NotSignedIn) {\n return \"signIn\";\n }\n return \"enableTrading\";\n }}\n case={{\n signIn: (\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n Sign In\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n Enable Trading\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n return (\n <TextField\n placeholder=\"Referral code (Optional)\"\n fullWidth\n // label={\"Referral code (optional)\"}\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n props.setRefCode(e.target.value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: \"Remember me\",\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n Toggle this option to skip these steps next time you want to trade.\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={\n \"Toggle this option to skip these steps next time you want to trade.\"\n }\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n Remember me\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = \"Something went wrong\";\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = \"User rejected the request.\";\n }\n\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n\n","import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Match,\n Spinner,\n Text,\n} from \"@orderly.network/ui\";\n\ntype StepItemProps = {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n title: string;\n description: string;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description } = props;\n\n // console.log(props);\n\n return (\n <Box position=\"relative\" className=\"oui-pl-8\">\n <Box>\n <Text as=\"div\" intensity={98} size={\"sm\"}>\n {title}\n </Text>\n <Text as=\"div\" intensity={54} size={\"2xs\"}>\n {description}\n </Text>\n </Box>\n <Identifier {...props} />\n </Box>\n );\n};\n\nconst Identifier = (props: {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n}) => {\n const { active, isLoading, isCompleted } = props;\n\n return (\n <Match\n className={\"oui-absolute oui-left-0 oui-top-1 oui-z-10\"}\n value={() => {\n if (isCompleted) {\n return \"completed\";\n }\n if (isLoading) {\n return \"loading\";\n }\n\n if (active) {\n return \"active\";\n }\n\n return \"normal\";\n }}\n case={{\n loading: (\n <div>\n <Spinner size={\"sm\"} className={\"oui-ml-1\"} />\n </div>\n ),\n completed: (\n <div>\n <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />\n </div>\n ),\n }}\n default={<Dot active={!!active} />}\n />\n );\n};\n\nconst Dot: FC<{ active: boolean; className?: string }> = ({\n active,\n className,\n}) => {\n return (\n <div\n className={cn(\n \"oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1\",\n className,\n active ? \"oui-bg-primary-light\" : \"oui-bg-base-2\"\n )}\n />\n );\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\n\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\n\nexport const WalletConnectorModalId = \"walletConnector\" as const;\nexport const WalletConnectorSheetId = \"walletConnectorSheet\" as const;\n\nexport const WalletConnectorWidget = (props: any) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: \"Connect wallet\",\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: \"Connect wallet\",\n});\n","import {\n useAccount,\n useCheckReferralCode,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useEffect, useMemo, useState } from \"react\";\n\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(\"Wallet connected\");\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async (): Promise<string | undefined> => {\n if (refCode.length === 0) return Promise.resolve(undefined);\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(\n \"The referral_code must be 4 to 10 characters long, only accept upper case roman characters and numbers\"\n );\n }\n\n const { exist } = await verifyRefCode();\n \n\n if (exist === false) {\n return Promise.resolve(\"This referral code does not exist.\");\n }\n\n return Promise.resolve(undefined);\n };\n\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n Match,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { PropsWithChildren, ReactElement, useMemo } from \"react\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport { alertMessages, DESCRIPTIONS, LABELS } from \"../constants/message\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nconst AuthGuard = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = { ...LABELS, ...props.labels };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst DefaultFallback = (props: {\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n const onConnectOrderly = () => {\n modal.show(matches ? WalletConnectorSheetId : WalletConnectorModalId).then(\n (r) => console.log(r),\n (error) => console.log(error)\n );\n };\n\n const onConnectWallet = async () => {\n const res = await connectWallet();\n\n if (!res) return;\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(\"Wallet connected\");\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorDialogId, {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n })\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(\"Wallet connected\");\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n return (\n <Match\n value={props.status}\n case={(value: AccountStatusEnum) => {\n if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n if (value <= AccountStatusEnum.NotSignedIn) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectOrderly();\n }}\n // fullWidth\n angle={45}\n description={descriptions?.signin}\n {...buttonProps}\n >\n {labels.signin}\n </StatusInfo>\n );\n }\n }}\n default={\n <StatusInfo\n size=\"lg\"\n // fullWidth\n description={descriptions?.enableTrading}\n {...buttonProps}\n onClick={() => onConnectOrderly()}\n >\n {labels.enableTrading}\n </StatusInfo>\n }\n />\n );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo = (\n props: ButtonProps & {\n description?: string;\n }\n) => {\n const { description, ...buttonProps } = props;\n return (\n <Flex direction={\"column\"}>\n <Button {...buttonProps}></Button>\n {!!description && (\n <Box mt={4} className=\"oui-leading-none\" style={{ lineHeight: 0 }}>\n <Text size=\"2xs\" intensity={36}>\n {description}\n </Text>\n </Box>\n )}\n </Flex>\n );\n};\n\nexport { AuthGuard };\n","export type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport const LABELS = {\n connectWallet: \"Connect wallet\",\n switchChain: \"Wrong network\",\n enableTrading: \"Enable trading\",\n signin: \"Sign in\",\n};\n\nexport const DESCRIPTIONS: alertMessages = {\n connectWallet: \"Please Connect wallet before starting to trade\",\n switchChain: \"Please switch to a supported network to continue\",\n enableTrading: \"Please Enable trading before starting to trade\",\n signin: \"Please sign in before starting to trade\",\n};\n","import { PropsWithChildren, useMemo } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { alertMessages, DESCRIPTIONS } from \"../constants/message\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\n\nexport const AuthGuardDataTable = <RecordType extends unknown>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n />\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView = (props: GuardViewProps) => {\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) return null;\n return (\n <Flex py={8}>\n <AuthGuard\n status={props.status}\n labels={props.labels}\n descriptions={descriptions}\n buttonProps={{\n size: \"md\",\n }}\n >\n <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n </AuthGuard>\n </Flex>\n );\n};\n","import { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n EmptyDataState,\n} from \"@orderly.network/ui\";\nimport { PropsWithChildren } from \"react\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n /** default value is\n * ```ts\n * {\n * connectWallet: \"Please connect wallet before starting to trade\",\n * signIn: \"Please sign in before starting to trade\",\n * enableTrading: \"Please sign in before starting to trade\",\n * wrongNetwork: \"Please switch to a supported network to continue.\",\n * }\n * ```\n */\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nconst AuthGuardEmpty = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n hint = {\n connectWallet: \"Please connect wallet before starting to trade\",\n signIn: \"Please sign in before starting to trade\",\n enableTrading: \"Please sign in before starting to trade\",\n wrongNetwork: \"Please switch to a supported network to continue.\",\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard status={status} descriptions={{...hint, switchChain: hint.wrongNetwork}}>\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\nimport { PropsWithChildren, useMemo, useState } from \"react\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: \"Please connect wallet before set up\",\n signIn: \"Please sign in before set up\",\n enableTrading: \"Please enable trading before set up\",\n wrongNetwork: \"Please switch to a supported network to set up\",\n },\n } = props;\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div\n style={{\n opacity: newOpacity,\n }}\n >\n {props.children}\n </div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","AccountStatusEnum","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","useAccount","useEventEmitter","useLocalStorage","i18n","useTranslation","WalletConnectContent","initAccountState","remember","setRemember","ee","t","accountState","account","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","showRememberHint","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","createOrderlyKey","createAccount","refCode","setRefCode","helpText","setHelpText","verifyRefCode","referral_code","bindRefCode","updateOrderError","updateMutating","enableTradingComplted","checkRefCode","exist","showRefCodeInput","info","WalletConnectorModalId","WalletConnectorSheetId","WalletConnectorWidget","useMediaQuery","MEDIA_TABLET","Either","useScreen","useAppContext","ChainSelectorDialogId","ChainSelectorSheetId","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","disabledConnect","_status","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","value","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","ignoreLoadingCheck","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","open","setOpen","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { StepItem } from \"./step\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.signIn\"),\n description: t(\"connector.signIn.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n console.log(res);\n setLoading(false);\n setActiveStep((step) => step + 1);\n try {\n await props.enableTradingComplted?.();\n } catch (e) {}\n if (typeof props.onCompleted === \"function\") {\n props.onCompleted();\n } else if (typeof props.close === \"function\") {\n props.close();\n }\n // props.onCompleted?.();\n },\n (reject) => {\n setLoading(false);\n if (reject === -1) return;\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\"\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onSignIn = () => {\n setLoading(true);\n return props\n .signIn()\n .then(\n (res) => {\n setActiveStep((step) => step + 1);\n onEnableTrading();\n },\n (reject) => {\n setLoading(false);\n\n if (reject === -1) return;\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\"\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n return (\n <StepItem\n title={step.title}\n description={step.description}\n isCompleted={activeStep > index}\n key={step.key}\n active={activeStep === index}\n isLoading={loading && activeStep === index}\n />\n );\n })}\n {steps.length > 1 && (\n <Box\n position={\"absolute\"}\n height={\"38px\"}\n left={28}\n top={18}\n zIndex={0}\n >\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\n </Box>\n {props.showRefCodeInput && steps.length == 2 && (\n <ReferralCode {...props} />\n )}\n {firstShowDialog && (\n <Flex justify={\"between\"} itemAlign={\"center\"}>\n <RememberMe />\n <Switch\n color={\"primary\"}\n checked={remember}\n onCheckedChange={setRemember}\n disabled={loading}\n className=\"data-[state=checked]:oui-bg-primary-darken\"\n />\n </Flex>\n )}\n <Flex justify={\"center\"} mt={8}>\n <Box width={\"45%\"}>\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n />\n </Box>\n </Flex>\n </Box>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n disabled?: boolean;\n}> = ({ state, signIn, enableTrading, loading, disabled }) => {\n const { t } = useTranslation();\n\n return (\n <Match\n value={() => {\n if (state <= AccountStatusEnum.NotSignedIn) {\n return \"signIn\";\n }\n return \"enableTrading\";\n }}\n case={{\n signIn: (\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.signIn\")}\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n props.setRefCode(e.target.value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Match,\n Spinner,\n Text,\n} from \"@orderly.network/ui\";\n\ntype StepItemProps = {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n title: string;\n description: string;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description } = props;\n\n // console.log(props);\n\n return (\n <Box position=\"relative\" className=\"oui-pl-8\">\n <Box>\n <Text as=\"div\" intensity={98} size={\"sm\"}>\n {title}\n </Text>\n <Text as=\"div\" intensity={54} size={\"2xs\"}>\n {description}\n </Text>\n </Box>\n <Identifier {...props} />\n </Box>\n );\n};\n\nconst Identifier = (props: {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n}) => {\n const { active, isLoading, isCompleted } = props;\n\n return (\n <Match\n className={\"oui-absolute oui-left-0 oui-top-1 oui-z-10\"}\n value={() => {\n if (isCompleted) {\n return \"completed\";\n }\n if (isLoading) {\n return \"loading\";\n }\n\n if (active) {\n return \"active\";\n }\n\n return \"normal\";\n }}\n case={{\n loading: (\n <div>\n <Spinner size={\"sm\"} className={\"oui-ml-1\"} />\n </div>\n ),\n completed: (\n <div>\n <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />\n </div>\n ),\n }}\n default={<Dot active={!!active} />}\n />\n );\n};\n\nconst Dot: FC<{ active: boolean; className?: string }> = ({\n active,\n className,\n}) => {\n return (\n <div\n className={cn(\n \"oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1\",\n className,\n active ? \"oui-bg-primary-light\" : \"oui-bg-base-2\"\n )}\n />\n );\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nexport const WalletConnectorModalId = \"walletConnector\" as const;\nexport const WalletConnectorSheetId = \"walletConnectorSheet\" as const;\n\nexport const WalletConnectorWidget = (props: any) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async (): Promise<string | undefined> => {\n if (refCode.length === 0) return Promise.resolve(undefined);\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n Match,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { PropsWithChildren, ReactElement, useMemo } from \"react\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nconst AuthGuard = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.signIn\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst DefaultFallback = (props: {\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal.show(matches ? WalletConnectorSheetId : WalletConnectorModalId).then(\n (r) => console.log(r),\n (error) => console.log(error)\n );\n };\n\n const onConnectWallet = async () => {\n const res = await connectWallet();\n\n if (!res) return;\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorDialogId, {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n })\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n return (\n <Match\n value={props.status}\n case={(value: AccountStatusEnum) => {\n if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n if (value <= AccountStatusEnum.NotSignedIn) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectOrderly();\n }}\n // fullWidth\n angle={45}\n description={descriptions?.signin}\n {...buttonProps}\n >\n {labels.signin}\n </StatusInfo>\n );\n }\n }}\n default={\n <StatusInfo\n size=\"lg\"\n // fullWidth\n description={descriptions?.enableTrading}\n {...buttonProps}\n onClick={() => onConnectOrderly()}\n >\n {labels.enableTrading}\n </StatusInfo>\n }\n />\n );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo = (\n props: ButtonProps & {\n description?: string;\n }\n) => {\n const { description, ...buttonProps } = props;\n return (\n <Flex direction={\"column\"}>\n <Button {...buttonProps}></Button>\n {!!description && (\n <Box mt={4} className=\"oui-leading-none\" style={{ lineHeight: 0 }}>\n <Text size=\"2xs\" intensity={36}>\n {description}\n </Text>\n </Box>\n )}\n </Flex>\n );\n};\n\nexport { AuthGuard };\n","import { PropsWithChildren, useMemo } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const AuthGuardDataTable = <RecordType extends unknown>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n />\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView = (props: GuardViewProps) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.signIn\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) return null;\n return (\n <Flex py={8}>\n <AuthGuard\n status={props.status}\n labels={props.labels}\n descriptions={descriptions}\n buttonProps={{\n size: \"md\",\n }}\n >\n <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n </AuthGuard>\n </Flex>\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nconst AuthGuardEmpty = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.signIn.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.signIn.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div\n style={{\n opacity: newOpacity,\n }}\n >\n {props.children}\n </div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { useState, useEffect, useMemo } from 'react';
|
|
2
|
-
import { registerSimpleDialog, registerSimpleSheet, Box, Text, Divider, Flex, Switch, toast, TextField, inputFormatter, Tooltip,
|
|
2
|
+
import { registerSimpleDialog, registerSimpleSheet, Box, Text, Divider, Flex, Switch, toast, TextField, inputFormatter, Tooltip, Match, Button, CheckedCircleFillIcon, Spinner, modal, capitalizeFirstLetter, cn, Either, useScreen, DataTable, ExtensionSlot, ExtensionPositionEnum, EmptyDataState } from '@orderly.network/ui';
|
|
3
3
|
import { AccountStatusEnum, MEDIA_TABLET } from '@orderly.network/types';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
5
|
import { useAccount, useLazyQuery, useGetReferralCode, useMutation, useEventEmitter, useLocalStorage, useMediaQuery } from '@orderly.network/hooks';
|
|
6
|
+
import { i18n, useTranslation } from '@orderly.network/i18n';
|
|
6
7
|
import { useAppContext, useDataTap } from '@orderly.network/react-app';
|
|
7
8
|
import { ChainSelectorSheetId, ChainSelectorDialogId } from '@orderly.network/ui-chain-selector';
|
|
8
9
|
|
|
9
|
-
var V=e=>{let{title:t,description:n}=e;return jsxs(Box,{position:"relative",className:"oui-pl-8",children:[jsxs(Box,{children:[jsx(Text,{as:"div",intensity:98,size:"sm",children:t}),jsx(Text,{as:"div",intensity:54,size:"2xs",children:n})]}),jsx(me,{...e})]})},me=e=>{let{active:t,isLoading:n,isCompleted:i}=e;return jsx(Match,{className:"oui-absolute oui-left-0 oui-top-1 oui-z-10",value:()=>i?"completed":n?"loading":t?"active":"normal",case:{loading:jsx("div",{children:jsx(Spinner,{size:"sm",className:"oui-ml-1"})}),completed:jsx("div",{children:jsx(CheckedCircleFillIcon,{opacity:1,className:"oui-text-primary"})})},default:jsx(fe,{active:!!t})})},fe=({active:e,className:t})=>jsx("div",{className:cn("oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1",t,e?"oui-bg-primary-light":"oui-bg-base-2")});var B=e=>{let{initAccountState:t=AccountStatusEnum.NotConnected}=e,[n,i]=useState(true),o=useEventEmitter(),{state:u,account:g}=useAccount(),[c,d]=useState(t),[r,m]=useState(0),[s,p]=useState(false),[x]=useLocalStorage("orderly-first-show-wallet-connector-dialog",void 0);useEffect(()=>()=>{localStorage.setItem("orderly-first-show-wallet-connector-dialog","1");},[]),useEffect(()=>{d(u.status);},[u]);let y=useMemo(()=>{let a=[];return t<AccountStatusEnum.SignedIn&&a.push({key:"signIn",title:"Sign In",description:"Confirm you are the owner of this wallet"}),t<AccountStatusEnum.EnableTrading&&a.push({key:"enableTrading",title:"Enable Trading",description:"Enable secure access to our API for lightning fast trading"}),a},[t]),I=()=>(p(true),e.enableTrading(n).then(async a=>{p(false),m(C=>C+1);try{await e.enableTradingComplted?.();}catch{}typeof e.onCompleted=="function"?e.onCompleted():typeof e.close=="function"&&e.close();},a=>{if(p(false),a!==-1){if(a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){o.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:g.address});return}toast.error(Y(a));}}).catch(a=>{p(false);})),P=()=>(p(true),e.signIn().then(a=>{m(C=>C+1),I();},a=>{if(p(false),a!==-1){if(a.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){o.emit("wallet:sign-message-with-ledger-error",{message:a.message,userAddress:g.address});return}toast.error(Y(a));}}).catch(a=>{p(false);}));return jsxs(Box,{id:"oui-wallet-connect-dialog-content",className:"oui-font-semibold",children:[jsx(Text,{intensity:54,size:"xs",children:"Your previous access has expired, you will receive a signature request to enable trading. Signing is free and will not send a transaction."}),jsxs(Box,{p:4,my:6,intensity:600,r:"lg",className:"oui-space-y-5",position:"relative",children:[y.map((a,C)=>jsx(V,{title:a.title,description:a.description,isCompleted:r>C,active:r===C,isLoading:s&&r===C},a.key)),y.length>1&&jsx(Box,{position:"absolute",height:"38px",left:28,top:18,zIndex:0,children:jsx(Divider,{lineStyle:"dashed",direction:"vertical",intensity:16,className:"oui-h-full"})})]}),e.showRefCodeInput&&y.length==2&&jsx(Ae,{...e}),x&&jsxs(Flex,{justify:"between",itemAlign:"center",children:[jsx(Ne,{}),jsx(Switch,{color:"primary",checked:n,onCheckedChange:i,disabled:s,className:"data-[state=checked]:oui-bg-primary-darken"})]}),jsx(Flex,{justify:"center",mt:8,children:jsx(Box,{width:"45%",children:jsx(Ee,{state:c,signIn:P,enableTrading:I,loading:s,disabled:c>=AccountStatusEnum.EnableTrading})})})]})},Ee=({state:e,signIn:t,enableTrading:n,loading:i,disabled:o})=>jsx(Match,{value:()=>e<=AccountStatusEnum.NotSignedIn?"signIn":"enableTrading",case:{signIn:jsx(Button,{fullWidth:true,onClick:()=>t(),loading:i,disabled:o,children:"Sign In"}),enableTrading:jsx(Button,{fullWidth:true,onClick:()=>n(),loading:i,disabled:o,children:"Enable Trading"})}}),Ae=e=>jsx(TextField,{placeholder:"Referral code (Optional)",fullWidth:true,label:"",value:e.refCode,onChange:t=>{e.setRefCode(t.target.value);},classNames:{label:"oui-text-base-contrast-54 oui-text-xs",input:"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm"},formatters:[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)],onClear:()=>{e.setRefCode("");},autoComplete:"off",helpText:e.helpText,className:"oui-mb-4",color:e.helpText?"danger":void 0}),Ne=()=>jsx(Tooltip,{content:"Toggle this option to skip these steps next time you want to trade.",className:"oui-max-w-[300px]",children:jsx("button",{onClick:()=>{window.innerWidth>768||modal.alert({title:"Remember me",message:jsx("span",{className:"oui-text-2xs oui-text-base-contrast/60",children:"Toggle this option to skip these steps next time you want to trade."})});},children:jsx(Text,{intensity:54,size:"xs",className:"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36",children:"Remember me"})})});function Y(e){Object.keys(e).forEach(n=>{});let t="Something went wrong";return e.toString().includes("rejected")&&(t="User rejected the request."),capitalizeFirstLetter(t)??t}var L=()=>{let{account:e,state:t,createOrderlyKey:n,createAccount:i}=useAccount(),[o,u]=useState(""),[g,c]=useState(""),{trigger:d}=useLazyQuery(`/v1/public/referral/verify_ref_code?referral_code=${o}`);useEffect(()=>{let w=localStorage.getItem("referral_code");w!=null&&u(w);},[]);let{referral_code:r,isLoading:m}=useGetReferralCode(e.accountId),[s,{error:p,isMutating:x}]=useMutation("/v1/referral/bind","POST");useEffect(()=>{o.length===0&&c("");},[o]);let y=()=>{toast.success("Wallet connected"),o.length>=4&&o.length<=10&&s({referral_code:o}).finally(()=>{localStorage.removeItem("referral_code");});},I=async()=>{if(o.length===0)return Promise.resolve(void 0);if(o.length>0&&(o.length<4||o.length>10))return Promise.resolve("The referral_code must be 4 to 10 characters long, only accept upper case roman characters and numbers");let{exist:w}=await d();return w===false?Promise.resolve("This referral code does not exist."):Promise.resolve(void 0)},P=(r?.length||0)===0&&!m,a=async()=>{if(P){let w=await I();if(typeof w<"u")return c(w),Promise.reject(-1)}return c(""),i()};return {enableTrading:async w=>{if(P){let F=await I();if(typeof F<"u")return c(F),Promise.reject(-1)}return c(""),n(w)},initAccountState:t.status,signIn:a,enableTradingComplted:y,refCode:o,setRefCode:u,helpText:g,showRefCodeInput:P}};var v="walletConnector",R="walletConnectorSheet",O=e=>{let t=L();return jsx(B,{...t,...e})};registerSimpleDialog(v,O,{size:"sm",title:"Connect wallet"});registerSimpleSheet(R,O,{title:"Connect wallet"});var X={connectWallet:"Connect wallet",switchChain:"Wrong network",enableTrading:"Enable trading",signin:"Sign in"},j={connectWallet:"Please Connect wallet before starting to trade",switchChain:"Please switch to a supported network to continue",enableTrading:"Please Enable trading before starting to trade",signin:"Please sign in before starting to trade"};var T=e=>{let{status:t,buttonProps:n,fallback:i,descriptions:o,classNames:u,networkId:g,id:c,bridgeLessOnly:d}=e,{state:r}=useAccount(),{wrongNetwork:m,disabledConnect:s}=useAppContext(),p=useMemo(()=>t===void 0?r.status===AccountStatusEnum.EnableTradingWithoutConnected?AccountStatusEnum.EnableTradingWithoutConnected:AccountStatusEnum.EnableTrading:t,[t,r.status]),x={...X,...e.labels},y=useMemo(()=>typeof i<"u"?i({validating:r.validating,status:r.status,wrongNetwork:m}):r.validating&&!s?jsx(E,{angle:45,disabled:true,loading:true,description:o?.connectWallet,id:c,type:"button",...n,children:x.connectWallet}):jsx(Ze,{bridgeLessOnly:d,status:r.status,buttonProps:{...n,id:c,type:"button"},wrongNetwork:m,networkId:e.networkId,labels:x,descriptions:o,disabledConnect:s}),[r.status,r.validating,n,m]);return jsx(Either,{value:r.status>=p&&!m&&!s,left:y,children:e.children})},Ze=e=>{let{buttonProps:t,labels:n,descriptions:i}=e,{connectWallet:o}=useAppContext(),{account:u}=useAccount(),{isMobile:g}=useScreen(),c=useMediaQuery(MEDIA_TABLET),d=()=>{modal.show(c?R:v).then(s=>{},s=>{});},r=async()=>{let s=await o();s&&(s.wrongNetwork?m():(s?.status??AccountStatusEnum.NotConnected)<AccountStatusEnum.EnableTrading&&d());},m=()=>{u.once("validate:end",s=>{s<AccountStatusEnum.EnableTrading?d():toast.success("Wallet connected");}),modal.show(g?ChainSelectorSheetId:ChainSelectorDialogId,{networkId:e.networkId,bridgeLessOnly:e.bridgeLessOnly}).then(s=>{s.wrongNetwork||e.status>=AccountStatusEnum.Connected&&(e.status<AccountStatusEnum.EnableTrading?d():toast.success("Wallet connected"));},s=>{});};return e.wrongNetwork&&!e.disabledConnect?jsx(E,{color:"warning",onClick:()=>{m();},description:i?.switchChain,...t,children:n.switchChain}):jsx(Match,{value:e.status,case:s=>{if(s<=AccountStatusEnum.NotConnected||e.disabledConnect)return jsx(E,{size:"lg",onClick:()=>{r();},variant:e.disabledConnect?void 0:"gradient",angle:45,description:i?.connectWallet,disabled:e.disabledConnect,...t,children:n.connectWallet});if(s<=AccountStatusEnum.NotSignedIn)return jsx(E,{size:"lg",onClick:()=>{d();},angle:45,description:i?.signin,...t,children:n.signin})},default:jsx(E,{size:"lg",description:i?.enableTrading,...t,onClick:()=>d(),children:n.enableTrading})})};T.displayName="AuthGuard";var E=e=>{let{description:t,...n}=e;return jsxs(Flex,{direction:"column",children:[jsx(Button,{...n}),!!t&&jsx(Box,{mt:4,className:"oui-leading-none",style:{lineHeight:0},children:jsx(Text,{size:"2xs",intensity:36,children:t})})]})};var rt=e=>{let{status:t,labels:n,description:i,dataSource:o,...u}=e,{state:g}=useAccount(),{wrongNetwork:c,disabledConnect:d}=useAppContext(),r=useMemo(()=>t===void 0?g.status===AccountStatusEnum.EnableTradingWithoutConnected?AccountStatusEnum.EnableTradingWithoutConnected:AccountStatusEnum.EnableTrading:t,[t,g.status]),m=useDataTap(o,{accountStatus:r}),s=c||d||g.status<r||e.ignoreLoadingCheck;return jsx(DataTable,{dataSource:m,ignoreLoadingCheck:s,emptyView:jsx(at,{status:r,description:i,labels:n,className:e.classNames?.authGuardDescription,visible:!g.validating}),manualPagination:true,...u})},at=e=>{let t={...j,...e.description};return e.visible?jsx(Flex,{py:8,children:jsx(T,{status:e.status,labels:e.labels,descriptions:t,buttonProps:{size:"md"},children:jsx(ExtensionSlot,{position:ExtensionPositionEnum.EmptyDataIdentifier})})}):null};var re=e=>{let{hint:t={connectWallet:"Please connect wallet before starting to trade",signIn:"Please sign in before starting to trade",enableTrading:"Please sign in before starting to trade",wrongNetwork:"Please switch to a supported network to continue."},status:n}=e;return jsx(Box,{my:8,children:jsx(T,{status:n,descriptions:{...t,switchChain:t.wrongNetwork},children:e.children||jsx(EmptyDataState,{})})})};re.displayName="AuthGuardEmpty";var le=e=>{let{opactiy:t=90,tooltip:n={connectWallet:"Please connect wallet before set up",signIn:"Please sign in before set up",enableTrading:"Please enable trading before set up",wrongNetwork:"Please switch to a supported network to set up"}}=e,[i,o]=useState(false),{state:u}=useAccount(),g=true,{wrongNetwork:c}=useAppContext(),d=useMemo(()=>{if(c)return n?.wrongNetwork;switch(u.status){case AccountStatusEnum.NotConnected:return n?.connectWallet;case AccountStatusEnum.NotSignedIn:return n?.signIn;case AccountStatusEnum.DisabledTrading:return n?.enableTrading;case AccountStatusEnum.EnableTrading:return "";default:return e.content}},[e.content,u,g,n]),r=useMemo(()=>{switch(u.status){case AccountStatusEnum.NotConnected:case AccountStatusEnum.NotSignedIn:return t;case AccountStatusEnum.EnableTrading:return;default:return}},[e.opactiy,u,g]);return jsx(Tooltip,{open:d?i:false,onOpenChange:o,content:d,className:"oui-text-2xs",align:e.align,alignOffset:e.alignOffset,side:e.side,sideOffset:e.sideOffset,children:jsx("div",{style:{opacity:r},children:e.children})})};le.displayName="AuthGuardTooltip";
|
|
10
|
+
var Q=e=>{let{title:t,description:n}=e;return jsxs(Box,{position:"relative",className:"oui-pl-8",children:[jsxs(Box,{children:[jsx(Text,{as:"div",intensity:98,size:"sm",children:t}),jsx(Text,{as:"div",intensity:54,size:"2xs",children:n})]}),jsx(he,{...e})]})},he=e=>{let{active:t,isLoading:n,isCompleted:o}=e;return jsx(Match,{className:"oui-absolute oui-left-0 oui-top-1 oui-z-10",value:()=>o?"completed":n?"loading":t?"active":"normal",case:{loading:jsx("div",{children:jsx(Spinner,{size:"sm",className:"oui-ml-1"})}),completed:jsx("div",{children:jsx(CheckedCircleFillIcon,{opacity:1,className:"oui-text-primary"})})},default:jsx(be,{active:!!t})})},be=({active:e,className:t})=>jsx("div",{className:cn("oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1",t,e?"oui-bg-primary-light":"oui-bg-base-2")});var O=e=>{let{initAccountState:t=AccountStatusEnum.NotConnected}=e,[n,o]=useState(true),r=useEventEmitter(),{t:c}=useTranslation(),{state:g,account:d}=useAccount(),[m,a]=useState(t),[l,f]=useState(0),[s,h]=useState(false),[I]=useLocalStorage("orderly-first-show-wallet-connector-dialog",void 0);useEffect(()=>()=>{localStorage.setItem("orderly-first-show-wallet-connector-dialog","1");},[]),useEffect(()=>{a(g.status);},[g]);let T=useMemo(()=>{let i=[];return t<AccountStatusEnum.SignedIn&&i.push({key:"signIn",title:c("connector.signIn"),description:c("connector.signIn.description")}),t<AccountStatusEnum.EnableTrading&&i.push({key:"enableTrading",title:c("connector.enableTrading"),description:c("connector.enableTrading.description")}),i},[t,c]),k=()=>(h(true),e.enableTrading(n).then(async i=>{h(false),f(w=>w+1);try{await e.enableTradingComplted?.();}catch{}typeof e.onCompleted=="function"?e.onCompleted():typeof e.close=="function"&&e.close();},i=>{if(h(false),i!==-1){if(i.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){r.emit("wallet:sign-message-with-ledger-error",{message:i.message,userAddress:d.address});return}toast.error(X(i));}}).catch(i=>{h(false);})),W=()=>(h(true),e.signIn().then(i=>{f(w=>w+1),k();},i=>{if(h(false),i!==-1){if(i.message.indexOf("Signing off chain messages with Ledger is not yet supported")!==-1){r.emit("wallet:sign-message-with-ledger-error",{message:i.message,userAddress:d.address});return}toast.error(X(i));}}).catch(i=>{h(false);}));return jsxs(Box,{id:"oui-wallet-connect-dialog-content",className:"oui-font-semibold",children:[jsx(Text,{intensity:54,size:"xs",children:c("connector.expired")}),jsxs(Box,{p:4,my:6,intensity:600,r:"lg",className:"oui-space-y-5",position:"relative",children:[T.map((i,w)=>jsx(Q,{title:i.title,description:i.description,isCompleted:l>w,active:l===w,isLoading:s&&l===w},i.key)),T.length>1&&jsx(Box,{position:"absolute",height:"38px",left:28,top:18,zIndex:0,children:jsx(Divider,{lineStyle:"dashed",direction:"vertical",intensity:16,className:"oui-h-full"})})]}),e.showRefCodeInput&&T.length==2&&jsx(ve,{...e}),I&&jsxs(Flex,{justify:"between",itemAlign:"center",children:[jsx(Me,{}),jsx(Switch,{color:"primary",checked:n,onCheckedChange:o,disabled:s,className:"data-[state=checked]:oui-bg-primary-darken"})]}),jsx(Flex,{justify:"center",mt:8,children:jsx(Box,{width:"45%",children:jsx(Ee,{state:m,signIn:W,enableTrading:k,loading:s,disabled:m>=AccountStatusEnum.EnableTrading})})})]})},Ee=({state:e,signIn:t,enableTrading:n,loading:o,disabled:r})=>{let{t:c}=useTranslation();return jsx(Match,{value:()=>e<=AccountStatusEnum.NotSignedIn?"signIn":"enableTrading",case:{signIn:jsx(Button,{fullWidth:true,onClick:()=>t(),loading:o,disabled:r,children:c("connector.signIn")}),enableTrading:jsx(Button,{fullWidth:true,onClick:()=>n(),loading:o,disabled:r,children:c("connector.enableTrading")})}})},ve=e=>{let{t}=useTranslation();return jsx(TextField,{placeholder:t("connector.referralCode.placeholder"),fullWidth:true,label:"",value:e.refCode,onChange:n=>{e.setRefCode(n.target.value);},classNames:{label:"oui-text-base-contrast-54 oui-text-xs",input:"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm"},formatters:[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)],onClear:()=>{e.setRefCode("");},autoComplete:"off",helpText:e.helpText,className:"oui-mb-4",color:e.helpText?"danger":void 0})},Me=()=>{let{t:e}=useTranslation(),t=()=>{window.innerWidth>768||modal.alert({title:e("connector.rememberMe"),message:jsx("span",{className:"oui-text-2xs oui-text-base-contrast/60",children:e("connector.rememberMe.description")})});};return jsx(Tooltip,{content:e("connector.rememberMe.description"),className:"oui-max-w-[300px]",children:jsx("button",{onClick:t,children:jsx(Text,{intensity:54,size:"xs",className:"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36",children:e("connector.rememberMe")})})})};function X(e){Object.keys(e).forEach(n=>{});let t=i18n.t("connector.somethingWentWrong");return e.toString().includes("rejected")&&(t=i18n.t("connector.userRejected")),capitalizeFirstLetter(t)??t}var L=()=>{let{account:e,state:t,createOrderlyKey:n,createAccount:o}=useAccount(),[r,c]=useState(""),[g,d]=useState(""),{t:m}=useTranslation(),{trigger:a}=useLazyQuery(`/v1/public/referral/verify_ref_code?referral_code=${r}`);useEffect(()=>{let y=localStorage.getItem("referral_code");y!=null&&c(y);},[]);let{referral_code:l,isLoading:f}=useGetReferralCode(e.accountId),[s,{error:h,isMutating:I}]=useMutation("/v1/referral/bind","POST");useEffect(()=>{r.length===0&&d("");},[r]);let T=()=>{toast.success(m("connector.walletConnected")),r.length>=4&&r.length<=10&&s({referral_code:r}).finally(()=>{localStorage.removeItem("referral_code");});},k=async()=>{if(r.length===0)return Promise.resolve(void 0);if(r.length>0&&(r.length<4||r.length>10))return Promise.resolve(m("connector.referralCode.invalid"));let{exist:y}=await a();return y===false?Promise.resolve(m("connector.referralCode.notExist")):Promise.resolve(void 0)},W=(l?.length||0)===0&&!f,i=async()=>{if(W){let y=await k();if(typeof y<"u")return d(y),Promise.reject(-1)}return d(""),o()};return {enableTrading:async y=>{if(W){let _=await k();if(typeof _<"u")return d(_),Promise.reject(-1)}return d(""),n(y)},initAccountState:t.status,signIn:i,enableTradingComplted:T,refCode:r,setRefCode:c,helpText:g,showRefCodeInput:W}};var B="walletConnector",G="walletConnectorSheet",D=e=>{let t=L();return jsx(O,{...t,...e})};registerSimpleDialog(B,D,{size:"sm",title:()=>i18n.t("connector.connectWallet")});registerSimpleSheet(G,D,{title:()=>i18n.t("connector.connectWallet")});var S=e=>{let{status:t,buttonProps:n,fallback:o,descriptions:r,classNames:c,networkId:g,id:d,bridgeLessOnly:m}=e,{t:a}=useTranslation(),{state:l}=useAccount(),{wrongNetwork:f,disabledConnect:s}=useAppContext(),h=useMemo(()=>t===void 0?l.status===AccountStatusEnum.EnableTradingWithoutConnected?AccountStatusEnum.EnableTradingWithoutConnected:AccountStatusEnum.EnableTrading:t,[t,l.status]),I={connectWallet:a("connector.connectWallet"),switchChain:a("connector.wrongNetwork"),enableTrading:a("connector.enableTrading"),signin:a("connector.signIn"),...e.labels},T=useMemo(()=>typeof o<"u"?o({validating:l.validating,status:l.status,wrongNetwork:f}):l.validating&&!s?jsx(A,{angle:45,disabled:true,loading:true,description:r?.connectWallet,id:d,type:"button",...n,children:I.connectWallet}):jsx(je,{bridgeLessOnly:m,status:l.status,buttonProps:{...n,id:d,type:"button"},wrongNetwork:f,networkId:e.networkId,labels:I,descriptions:r,disabledConnect:s}),[l.status,l.validating,n,f]);return jsx(Either,{value:l.status>=h&&!f&&!s,left:T,children:e.children})},je=e=>{let{buttonProps:t,labels:n,descriptions:o}=e,{t:r}=useTranslation(),{connectWallet:c}=useAppContext(),{account:g}=useAccount(),{isMobile:d}=useScreen(),m=useMediaQuery(MEDIA_TABLET),a=()=>{modal.show(m?G:B).then(s=>{},s=>{});},l=async()=>{let s=await c();s&&(s.wrongNetwork?f():(s?.status??AccountStatusEnum.NotConnected)<AccountStatusEnum.EnableTrading&&a());},f=()=>{g.once("validate:end",s=>{s<AccountStatusEnum.EnableTrading?a():toast.success(r("connector.walletConnected"));}),modal.show(d?ChainSelectorSheetId:ChainSelectorDialogId,{networkId:e.networkId,bridgeLessOnly:e.bridgeLessOnly}).then(s=>{s.wrongNetwork||e.status>=AccountStatusEnum.Connected&&(e.status<AccountStatusEnum.EnableTrading?a():toast.success(r("connector.walletConnected")));},s=>{});};return e.wrongNetwork&&!e.disabledConnect?jsx(A,{color:"warning",onClick:()=>{f();},description:o?.switchChain,...t,children:n.switchChain}):jsx(Match,{value:e.status,case:s=>{if(s<=AccountStatusEnum.NotConnected||e.disabledConnect)return jsx(A,{size:"lg",onClick:()=>{l();},variant:e.disabledConnect?void 0:"gradient",angle:45,description:o?.connectWallet,disabled:e.disabledConnect,...t,children:n.connectWallet});if(s<=AccountStatusEnum.NotSignedIn)return jsx(A,{size:"lg",onClick:()=>{a();},angle:45,description:o?.signin,...t,children:n.signin})},default:jsx(A,{size:"lg",description:o?.enableTrading,...t,onClick:()=>a(),children:n.enableTrading})})};S.displayName="AuthGuard";var A=e=>{let{description:t,...n}=e;return jsxs(Flex,{direction:"column",children:[jsx(Button,{...n}),!!t&&jsx(Box,{mt:4,className:"oui-leading-none",style:{lineHeight:0},children:jsx(Text,{size:"2xs",intensity:36,children:t})})]})};var dt=e=>{let{status:t,labels:n,description:o,dataSource:r,...c}=e,{state:g}=useAccount(),{wrongNetwork:d,disabledConnect:m}=useAppContext(),a=useMemo(()=>t===void 0?g.status===AccountStatusEnum.EnableTradingWithoutConnected?AccountStatusEnum.EnableTradingWithoutConnected:AccountStatusEnum.EnableTrading:t,[t,g.status]),l=useDataTap(r,{accountStatus:a}),f=d||m||g.status<a||e.ignoreLoadingCheck;return jsx(DataTable,{dataSource:l,ignoreLoadingCheck:f,emptyView:jsx(ut,{status:a,description:o,labels:n,className:e.classNames?.authGuardDescription,visible:!g.validating}),manualPagination:true,...c})},ut=e=>{let{t}=useTranslation(),o={...{connectWallet:t("connector.connectWallet"),switchChain:t("connector.wrongNetwork"),enableTrading:t("connector.enableTrading"),signin:t("connector.signIn")},...e.description};return e.visible?jsx(Flex,{py:8,children:jsx(S,{status:e.status,labels:e.labels,descriptions:o,buttonProps:{size:"md"},children:jsx(ExtensionSlot,{position:ExtensionPositionEnum.EmptyDataIdentifier})})}):null};var le=e=>{let{t}=useTranslation(),{hint:n={connectWallet:t("connector.trade.connectWallet.tooltip"),signIn:t("connector.trade.signIn.tooltip"),enableTrading:t("connector.trade.enableTrading.tooltip"),wrongNetwork:t("connector.wrongNetwork.tooltip")},status:o}=e;return jsx(Box,{my:8,children:jsx(S,{status:o,descriptions:{...n,switchChain:n.wrongNetwork},children:e.children||jsx(EmptyDataState,{})})})};le.displayName="AuthGuardEmpty";var ue=e=>{let{t}=useTranslation(),{opactiy:n=90,tooltip:o={connectWallet:t("connector.setUp.connectWallet.tooltip"),signIn:t("connector.setUp.signIn.tooltip"),enableTrading:t("connector.setUp.enableTrading.tooltip"),wrongNetwork:t("connector.wrongNetwork.tooltip")}}=e,[r,c]=useState(false),{state:g}=useAccount(),d=true,{wrongNetwork:m}=useAppContext(),a=useMemo(()=>{if(m)return o?.wrongNetwork;switch(g.status){case AccountStatusEnum.NotConnected:return o?.connectWallet;case AccountStatusEnum.NotSignedIn:return o?.signIn;case AccountStatusEnum.DisabledTrading:return o?.enableTrading;case AccountStatusEnum.EnableTrading:return "";default:return e.content}},[e.content,g,d,o]),l=useMemo(()=>{switch(g.status){case AccountStatusEnum.NotConnected:case AccountStatusEnum.NotSignedIn:return n;case AccountStatusEnum.EnableTrading:return;default:return}},[e.opactiy,g,d]);return jsx(Tooltip,{open:a?r:false,onOpenChange:c,content:a,className:"oui-text-2xs",align:e.align,alignOffset:e.alignOffset,side:e.side,sideOffset:e.sideOffset,children:jsx("div",{style:{opacity:l},children:e.children})})};ue.displayName="AuthGuardTooltip";
|
|
10
11
|
|
|
11
|
-
export {
|
|
12
|
+
export { S as AuthGuard, dt as AuthGuardDataTable, le as AuthGuardEmpty, ue as AuthGuardTooltip, O as WalletConnectContent, B as WalletConnectorModalId, G as WalletConnectorSheetId, D as WalletConnectorWidget, L as useWalletConnectorBuilder };
|
|
12
13
|
//# sourceMappingURL=out.js.map
|
|
13
14
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/constants/message.ts","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","AccountStatusEnum","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","useAccount","useEventEmitter","useLocalStorage","WalletConnectContent","initAccountState","remember","setRemember","ee","accountState","account","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","createOrderlyKey","createAccount","refCode","setRefCode","helpText","setHelpText","verifyRefCode","referral_code","bindRefCode","updateOrderError","updateMutating","enableTradingComplted","checkRefCode","exist","showRefCodeInput","info","WalletConnectorModalId","WalletConnectorSheetId","WalletConnectorWidget","useMediaQuery","MEDIA_TABLET","Either","useScreen","useAppContext","ChainSelectorDialogId","ChainSelectorSheetId","LABELS","DESCRIPTIONS","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","disabledConnect","_status","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","value","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","ignoreLoadingCheck","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","open","setOpen","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n cn,\n Divider,\n Flex,\n Input,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { StepItem } from \"./step\";\nimport { useAccount, useEventEmitter, useLocalStorage } from \"@orderly.network/hooks\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: \"Sign In\",\n description: \"Confirm you are the owner of this wallet\",\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: \"Enable Trading\",\n description:\n \"Enable secure access to our API for lightning fast trading\",\n });\n }\n\n return steps;\n }, [initAccountState]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n console.log(res);\n setLoading(false);\n setActiveStep((step) => step + 1);\n try {\n await props.enableTradingComplted?.();\n } catch (e) {}\n if (typeof props.onCompleted === \"function\") {\n props.onCompleted();\n } else if (typeof props.close === \"function\") {\n props.close();\n }\n // props.onCompleted?.();\n },\n (reject) => {\n setLoading(false);\n if (reject === -1) return;\n\n if (reject.message.indexOf('Signing off chain messages with Ledger is not yet supported') !== -1) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {message: reject.message,userAddress: account.address});\n return;\n }\n toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onSignIn = () => {\n setLoading(true);\n return props\n .signIn()\n .then(\n (res) => {\n setActiveStep((step) => step + 1);\n onEnableTrading();\n },\n (reject) => {\n setLoading(false);\n\n if (reject === -1) return;\n if (reject.message.indexOf('Signing off chain messages with Ledger is not yet supported') !== -1) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {message: reject.message,userAddress: account.address});\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n console.log(\"state\", state);\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n Your previous access has expired, you will receive a signature request\n to enable trading. Signing is free and will not send a transaction.\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n return (\n <StepItem\n title={step.title}\n description={step.description}\n isCompleted={activeStep > index}\n key={step.key}\n active={activeStep === index}\n isLoading={loading && activeStep === index}\n />\n );\n })}\n {steps.length > 1 && (\n <Box\n position={\"absolute\"}\n height={\"38px\"}\n left={28}\n top={18}\n zIndex={0}\n >\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\n </Box>\n {props.showRefCodeInput && steps.length == 2 && (\n <ReferralCode {...props} />\n )}\n {firstShowDialog && (\n <Flex justify={\"between\"} itemAlign={\"center\"}>\n <RememberMe />\n <Switch\n color={\"primary\"}\n checked={remember}\n onCheckedChange={setRemember}\n disabled={loading}\n className=\"data-[state=checked]:oui-bg-primary-darken\"\n />\n </Flex>\n )}\n <Flex justify={\"center\"} mt={8}>\n <Box width={\"45%\"}>\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n />\n </Box>\n </Flex>\n </Box>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n disabled?: boolean;\n}> = ({ state, signIn, enableTrading, loading, disabled }) => {\n return (\n <Match\n value={() => {\n if (state <= AccountStatusEnum.NotSignedIn) {\n return \"signIn\";\n }\n return \"enableTrading\";\n }}\n case={{\n signIn: (\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n Sign In\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n Enable Trading\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n return (\n <TextField\n placeholder=\"Referral code (Optional)\"\n fullWidth\n // label={\"Referral code (optional)\"}\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n props.setRefCode(e.target.value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: \"Remember me\",\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n Toggle this option to skip these steps next time you want to trade.\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={\n \"Toggle this option to skip these steps next time you want to trade.\"\n }\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n Remember me\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = \"Something went wrong\";\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = \"User rejected the request.\";\n }\n\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n\n","import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Match,\n Spinner,\n Text,\n} from \"@orderly.network/ui\";\n\ntype StepItemProps = {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n title: string;\n description: string;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description } = props;\n\n // console.log(props);\n\n return (\n <Box position=\"relative\" className=\"oui-pl-8\">\n <Box>\n <Text as=\"div\" intensity={98} size={\"sm\"}>\n {title}\n </Text>\n <Text as=\"div\" intensity={54} size={\"2xs\"}>\n {description}\n </Text>\n </Box>\n <Identifier {...props} />\n </Box>\n );\n};\n\nconst Identifier = (props: {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n}) => {\n const { active, isLoading, isCompleted } = props;\n\n return (\n <Match\n className={\"oui-absolute oui-left-0 oui-top-1 oui-z-10\"}\n value={() => {\n if (isCompleted) {\n return \"completed\";\n }\n if (isLoading) {\n return \"loading\";\n }\n\n if (active) {\n return \"active\";\n }\n\n return \"normal\";\n }}\n case={{\n loading: (\n <div>\n <Spinner size={\"sm\"} className={\"oui-ml-1\"} />\n </div>\n ),\n completed: (\n <div>\n <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />\n </div>\n ),\n }}\n default={<Dot active={!!active} />}\n />\n );\n};\n\nconst Dot: FC<{ active: boolean; className?: string }> = ({\n active,\n className,\n}) => {\n return (\n <div\n className={cn(\n \"oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1\",\n className,\n active ? \"oui-bg-primary-light\" : \"oui-bg-base-2\"\n )}\n />\n );\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\n\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\n\nexport const WalletConnectorModalId = \"walletConnector\" as const;\nexport const WalletConnectorSheetId = \"walletConnectorSheet\" as const;\n\nexport const WalletConnectorWidget = (props: any) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: \"Connect wallet\",\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: \"Connect wallet\",\n});\n","import {\n useAccount,\n useCheckReferralCode,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useEffect, useMemo, useState } from \"react\";\n\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(\"Wallet connected\");\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async (): Promise<string | undefined> => {\n if (refCode.length === 0) return Promise.resolve(undefined);\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(\n \"The referral_code must be 4 to 10 characters long, only accept upper case roman characters and numbers\"\n );\n }\n\n const { exist } = await verifyRefCode();\n \n\n if (exist === false) {\n return Promise.resolve(\"This referral code does not exist.\");\n }\n\n return Promise.resolve(undefined);\n };\n\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n Match,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { PropsWithChildren, ReactElement, useMemo } from \"react\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport { alertMessages, DESCRIPTIONS, LABELS } from \"../constants/message\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nconst AuthGuard = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = { ...LABELS, ...props.labels };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst DefaultFallback = (props: {\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n const onConnectOrderly = () => {\n modal.show(matches ? WalletConnectorSheetId : WalletConnectorModalId).then(\n (r) => console.log(r),\n (error) => console.log(error)\n );\n };\n\n const onConnectWallet = async () => {\n const res = await connectWallet();\n\n if (!res) return;\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(\"Wallet connected\");\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorDialogId, {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n })\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(\"Wallet connected\");\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n return (\n <Match\n value={props.status}\n case={(value: AccountStatusEnum) => {\n if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n if (value <= AccountStatusEnum.NotSignedIn) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectOrderly();\n }}\n // fullWidth\n angle={45}\n description={descriptions?.signin}\n {...buttonProps}\n >\n {labels.signin}\n </StatusInfo>\n );\n }\n }}\n default={\n <StatusInfo\n size=\"lg\"\n // fullWidth\n description={descriptions?.enableTrading}\n {...buttonProps}\n onClick={() => onConnectOrderly()}\n >\n {labels.enableTrading}\n </StatusInfo>\n }\n />\n );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo = (\n props: ButtonProps & {\n description?: string;\n }\n) => {\n const { description, ...buttonProps } = props;\n return (\n <Flex direction={\"column\"}>\n <Button {...buttonProps}></Button>\n {!!description && (\n <Box mt={4} className=\"oui-leading-none\" style={{ lineHeight: 0 }}>\n <Text size=\"2xs\" intensity={36}>\n {description}\n </Text>\n </Box>\n )}\n </Flex>\n );\n};\n\nexport { AuthGuard };\n","export type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport const LABELS = {\n connectWallet: \"Connect wallet\",\n switchChain: \"Wrong network\",\n enableTrading: \"Enable trading\",\n signin: \"Sign in\",\n};\n\nexport const DESCRIPTIONS: alertMessages = {\n connectWallet: \"Please Connect wallet before starting to trade\",\n switchChain: \"Please switch to a supported network to continue\",\n enableTrading: \"Please Enable trading before starting to trade\",\n signin: \"Please sign in before starting to trade\",\n};\n","import { PropsWithChildren, useMemo } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { alertMessages, DESCRIPTIONS } from \"../constants/message\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\n\nexport const AuthGuardDataTable = <RecordType extends unknown>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n />\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView = (props: GuardViewProps) => {\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) return null;\n return (\n <Flex py={8}>\n <AuthGuard\n status={props.status}\n labels={props.labels}\n descriptions={descriptions}\n buttonProps={{\n size: \"md\",\n }}\n >\n <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n </AuthGuard>\n </Flex>\n );\n};\n","import { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Box,\n EmptyDataState,\n} from \"@orderly.network/ui\";\nimport { PropsWithChildren } from \"react\";\nimport { AuthGuard } from \"./authGuard\";\n\ntype AuthGuardProps = {\n /** default value is\n * ```ts\n * {\n * connectWallet: \"Please connect wallet before starting to trade\",\n * signIn: \"Please sign in before starting to trade\",\n * enableTrading: \"Please sign in before starting to trade\",\n * wrongNetwork: \"Please switch to a supported network to continue.\",\n * }\n * ```\n */\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nconst AuthGuardEmpty = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n hint = {\n connectWallet: \"Please connect wallet before starting to trade\",\n signIn: \"Please sign in before starting to trade\",\n enableTrading: \"Please sign in before starting to trade\",\n wrongNetwork: \"Please switch to a supported network to continue.\",\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard status={status} descriptions={{...hint, switchChain: hint.wrongNetwork}}>\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\nimport { PropsWithChildren, useMemo, useState } from \"react\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: \"Please connect wallet before set up\",\n signIn: \"Please sign in before set up\",\n enableTrading: \"Please enable trading before set up\",\n wrongNetwork: \"Please switch to a supported network to set up\",\n },\n } = props;\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div\n style={{\n opacity: newOpacity,\n }}\n >\n {props.children}\n </div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/walletConnectorContent.tsx","../src/component/step.tsx","../src/component/walletConnector.tsx","../src/component/useWalletConnectorBuilder.ts","../src/component/authGuard.tsx","../src/component/authGuardDataTable.tsx","../src/component/authGuardEmpty.tsx","../src/component/authGuardTooltip.tsx"],"names":["useEffect","useMemo","useState","Box","Button","capitalizeFirstLetter","Divider","Flex","inputFormatter","Match","modal","Switch","Text","TextField","toast","Tooltip","AccountStatusEnum","CheckedCircleFillIcon","cn","Spinner","jsx","jsxs","StepItem","props","title","description","Identifier","active","isLoading","isCompleted","Dot","className","useAccount","useEventEmitter","useLocalStorage","i18n","useTranslation","WalletConnectContent","initAccountState","remember","setRemember","ee","t","accountState","account","state","setState","activeStep","setActiveStep","loading","setLoading","firstShowDialog","steps","onEnableTrading","res","step","reject","paseErrorMsg","e","onSignIn","index","ReferralCode","RememberMe","ActionButton","signIn","enableTrading","disabled","showRememberHint","key","msg","registerSimpleDialog","registerSimpleSheet","useGetReferralCode","useLazyQuery","useMutation","useWalletConnectorBuilder","createOrderlyKey","createAccount","refCode","setRefCode","helpText","setHelpText","verifyRefCode","referral_code","bindRefCode","updateOrderError","updateMutating","enableTradingComplted","checkRefCode","exist","showRefCodeInput","info","WalletConnectorModalId","WalletConnectorSheetId","WalletConnectorWidget","useMediaQuery","MEDIA_TABLET","Either","useScreen","useAppContext","ChainSelectorDialogId","ChainSelectorSheetId","AuthGuard","status","buttonProps","fallback","descriptions","classNames","networkId","id","bridgeLessOnly","wrongNetwork","disabledConnect","_status","labels","Left","StatusInfo","DefaultFallback","connectWallet","isMobile","matches","onConnectOrderly","r","error","onConnectWallet","switchChain","value","ExtensionPositionEnum","ExtensionSlot","DataTable","useDataTap","AuthGuardDataTable","dataSource","rest","data","ignoreLoadingCheck","GuardView","EmptyDataState","AuthGuardEmpty","hint","AuthGuardTooltip","opactiy","tooltip","open","setOpen","isSupport","newOpacity"],"mappings":"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","sourcesContent":["import { FC, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n Button,\n capitalizeFirstLetter,\n Divider,\n Flex,\n inputFormatter,\n Match,\n modal,\n Switch,\n Text,\n TextField,\n toast,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { StepItem } from \"./step\";\nimport {\n useAccount,\n useEventEmitter,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\n\nexport type WalletConnectContentProps = {\n initAccountState: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: (remember: boolean) => Promise<any>;\n enableTradingComplted?: () => Promise<void>;\n onCompleted?: () => void;\n close?: () => void;\n refCode: string;\n setRefCode: React.Dispatch<React.SetStateAction<string>>;\n helpText?: string;\n showRefCodeInput: boolean;\n};\n\nexport const WalletConnectContent = (props: WalletConnectContentProps) => {\n const { initAccountState = AccountStatusEnum.NotConnected } = props;\n const [remember, setRemember] = useState(true);\n const ee = useEventEmitter();\n const { t } = useTranslation();\n\n const { state: accountState, account } = useAccount();\n const [state, setState] = useState(initAccountState);\n const [activeStep, setActiveStep] = useState(0);\n const [loading, setLoading] = useState(false);\n const [firstShowDialog] = useLocalStorage(\n \"orderly-first-show-wallet-connector-dialog\",\n undefined\n );\n useEffect(() => {\n return () => {\n localStorage.setItem(\"orderly-first-show-wallet-connector-dialog\", \"1\");\n };\n }, []);\n\n useEffect(() => {\n setState(accountState.status);\n }, [accountState]);\n\n const steps = useMemo(() => {\n const steps = [];\n if (initAccountState < AccountStatusEnum.SignedIn) {\n steps.push({\n key: \"signIn\",\n title: t(\"connector.signIn\"),\n description: t(\"connector.signIn.description\"),\n });\n }\n\n if (initAccountState < AccountStatusEnum.EnableTrading) {\n steps.push({\n key: \"enableTrading\",\n title: t(\"connector.enableTrading\"),\n description: t(\"connector.enableTrading.description\"),\n });\n }\n\n return steps;\n }, [initAccountState, t]);\n\n const onEnableTrading = () => {\n setLoading(true);\n return props\n .enableTrading(remember)\n .then(\n async (res) => {\n console.log(res);\n setLoading(false);\n setActiveStep((step) => step + 1);\n try {\n await props.enableTradingComplted?.();\n } catch (e) {}\n if (typeof props.onCompleted === \"function\") {\n props.onCompleted();\n } else if (typeof props.close === \"function\") {\n props.close();\n }\n // props.onCompleted?.();\n },\n (reject) => {\n setLoading(false);\n if (reject === -1) return;\n\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\"\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n console.log(\"enable trading catch error\", e);\n setLoading(false);\n });\n };\n\n const onSignIn = () => {\n setLoading(true);\n return props\n .signIn()\n .then(\n (res) => {\n setActiveStep((step) => step + 1);\n onEnableTrading();\n },\n (reject) => {\n setLoading(false);\n\n if (reject === -1) return;\n if (\n reject.message.indexOf(\n \"Signing off chain messages with Ledger is not yet supported\"\n ) !== -1\n ) {\n ee.emit(\"wallet:sign-message-with-ledger-error\", {\n message: reject.message,\n userAddress: account.address,\n });\n return;\n }\n\n toast.error(paseErrorMsg(reject));\n }\n )\n .catch((e) => {\n setLoading(false);\n });\n };\n\n return (\n <Box id=\"oui-wallet-connect-dialog-content\" className=\"oui-font-semibold\">\n <Text intensity={54} size=\"xs\">\n {t(\"connector.expired\")}\n </Text>\n <Box\n p={4}\n my={6}\n intensity={600}\n r=\"lg\"\n className=\"oui-space-y-5\"\n position={\"relative\"}\n >\n {steps.map((step, index) => {\n return (\n <StepItem\n title={step.title}\n description={step.description}\n isCompleted={activeStep > index}\n key={step.key}\n active={activeStep === index}\n isLoading={loading && activeStep === index}\n />\n );\n })}\n {steps.length > 1 && (\n <Box\n position={\"absolute\"}\n height={\"38px\"}\n left={28}\n top={18}\n zIndex={0}\n >\n <Divider\n lineStyle={\"dashed\"}\n direction={\"vertical\"}\n intensity={16}\n className=\"oui-h-full\"\n />\n </Box>\n )}\n </Box>\n {props.showRefCodeInput && steps.length == 2 && (\n <ReferralCode {...props} />\n )}\n {firstShowDialog && (\n <Flex justify={\"between\"} itemAlign={\"center\"}>\n <RememberMe />\n <Switch\n color={\"primary\"}\n checked={remember}\n onCheckedChange={setRemember}\n disabled={loading}\n className=\"data-[state=checked]:oui-bg-primary-darken\"\n />\n </Flex>\n )}\n <Flex justify={\"center\"} mt={8}>\n <Box width={\"45%\"}>\n <ActionButton\n state={state}\n signIn={onSignIn}\n enableTrading={onEnableTrading}\n loading={loading}\n disabled={state >= AccountStatusEnum.EnableTrading}\n />\n </Box>\n </Flex>\n </Box>\n );\n};\n\nconst ActionButton: FC<{\n state: AccountStatusEnum;\n signIn: () => Promise<any>;\n enableTrading: () => Promise<any>;\n loading: boolean;\n disabled?: boolean;\n}> = ({ state, signIn, enableTrading, loading, disabled }) => {\n const { t } = useTranslation();\n\n return (\n <Match\n value={() => {\n if (state <= AccountStatusEnum.NotSignedIn) {\n return \"signIn\";\n }\n return \"enableTrading\";\n }}\n case={{\n signIn: (\n <Button\n fullWidth\n onClick={() => signIn()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.signIn\")}\n </Button>\n ),\n enableTrading: (\n <Button\n fullWidth\n onClick={() => enableTrading()}\n loading={loading}\n disabled={disabled}\n >\n {t(\"connector.enableTrading\")}\n </Button>\n ),\n }}\n />\n );\n};\n\nconst ReferralCode: FC<WalletConnectContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <TextField\n placeholder={t(\"connector.referralCode.placeholder\")}\n fullWidth\n label=\"\"\n value={props.refCode}\n onChange={(e) => {\n props.setRefCode(e.target.value);\n }}\n classNames={{\n label: \"oui-text-base-contrast-54 oui-text-xs\",\n input: \"placeholder:oui-text-base-contrast-20 placeholder:oui-text-sm\",\n }}\n formatters={[inputFormatter.createRegexInputFormatter(/[^A-Z0-9]/g)]}\n onClear={() => {\n props.setRefCode(\"\");\n }}\n autoComplete=\"off\"\n helpText={props.helpText}\n className=\"oui-mb-4\"\n color={props.helpText ? \"danger\" : undefined}\n />\n );\n};\n\nconst RememberMe = () => {\n const { t } = useTranslation();\n\n const showRememberHint = () => {\n if (window.innerWidth > 768) return;\n modal.alert({\n title: t(\"connector.rememberMe\"),\n message: (\n <span className=\"oui-text-2xs oui-text-base-contrast/60\">\n {t(\"connector.rememberMe.description\")}\n </span>\n ),\n });\n };\n return (\n <Tooltip\n content={t(\"connector.rememberMe.description\")}\n className=\"oui-max-w-[300px]\"\n >\n <button onClick={showRememberHint}>\n <Text\n intensity={54}\n size={\"xs\"}\n className={\n \"oui-underline oui-underline-offset-4 oui-decoration-dashed oui-decoration-base-contrast-36\"\n }\n >\n {t(\"connector.rememberMe\")}\n </Text>\n </button>\n </Tooltip>\n );\n};\n\nfunction paseErrorMsg(reject: any): string {\n console.log(\"wallet callback error\", reject);\n console.log(\"message *** \", \"reject keys\", Object.keys(reject));\n Object.keys(reject).forEach((key) => {\n console.log(\"key\", key, \"-\", reject[key]);\n });\n let msg = i18n.t(\"connector.somethingWentWrong\");\n\n // if (typeof reject?.info?.error === \"object\" && \"message\" in reject?.info?.error) {\n // msg = reject?.info?.error?.message;\n // }\n\n // if (typeof reject?.shortMessage === 'string') {\n // msg = reject.shortMessage;\n // }\n\n if (reject.toString().includes(\"rejected\")) {\n msg = i18n.t(\"connector.userRejected\");\n }\n\n return capitalizeFirstLetter(msg) ?? msg;\n}\n","import { FC } from \"react\";\nimport {\n Box,\n CheckedCircleFillIcon,\n cn,\n Match,\n Spinner,\n Text,\n} from \"@orderly.network/ui\";\n\ntype StepItemProps = {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n title: string;\n description: string;\n};\n\nexport const StepItem = (props: StepItemProps) => {\n const { title, description } = props;\n\n // console.log(props);\n\n return (\n <Box position=\"relative\" className=\"oui-pl-8\">\n <Box>\n <Text as=\"div\" intensity={98} size={\"sm\"}>\n {title}\n </Text>\n <Text as=\"div\" intensity={54} size={\"2xs\"}>\n {description}\n </Text>\n </Box>\n <Identifier {...props} />\n </Box>\n );\n};\n\nconst Identifier = (props: {\n active?: boolean;\n isLoading?: boolean;\n isCompleted?: boolean;\n}) => {\n const { active, isLoading, isCompleted } = props;\n\n return (\n <Match\n className={\"oui-absolute oui-left-0 oui-top-1 oui-z-10\"}\n value={() => {\n if (isCompleted) {\n return \"completed\";\n }\n if (isLoading) {\n return \"loading\";\n }\n\n if (active) {\n return \"active\";\n }\n\n return \"normal\";\n }}\n case={{\n loading: (\n <div>\n <Spinner size={\"sm\"} className={\"oui-ml-1\"} />\n </div>\n ),\n completed: (\n <div>\n <CheckedCircleFillIcon opacity={1} className=\"oui-text-primary\" />\n </div>\n ),\n }}\n default={<Dot active={!!active} />}\n />\n );\n};\n\nconst Dot: FC<{ active: boolean; className?: string }> = ({\n active,\n className,\n}) => {\n return (\n <div\n className={cn(\n \"oui-w-[8.3px] oui-h-[8.3px] oui-rounded-full oui-ml-2 oui-mt-1\",\n className,\n active ? \"oui-bg-primary-light\" : \"oui-bg-base-2\"\n )}\n />\n );\n};\n","import { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport { useWalletConnectorBuilder } from \"./useWalletConnectorBuilder\";\nimport { WalletConnectContent } from \"./walletConnectorContent\";\nimport { i18n } from \"@orderly.network/i18n\";\n\nexport const WalletConnectorModalId = \"walletConnector\" as const;\nexport const WalletConnectorSheetId = \"walletConnectorSheet\" as const;\n\nexport const WalletConnectorWidget = (props: any) => {\n const state = useWalletConnectorBuilder();\n return <WalletConnectContent {...state} {...props} />;\n};\n\nregisterSimpleDialog(WalletConnectorModalId, WalletConnectorWidget, {\n size: \"sm\",\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n\nregisterSimpleSheet(WalletConnectorSheetId, WalletConnectorWidget, {\n title: () => i18n.t(\"connector.connectWallet\"),\n});\n","import { useEffect, useState } from \"react\";\nimport {\n useAccount,\n useGetReferralCode,\n useLazyQuery,\n useMutation,\n} from \"@orderly.network/hooks\";\nimport { toast } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const useWalletConnectorBuilder = () => {\n const { account, state, createOrderlyKey, createAccount } = useAccount();\n const [refCode, setRefCode] = useState(\"\");\n const [helpText, setHelpText] = useState(\"\");\n const { t } = useTranslation();\n\n const { trigger: verifyRefCode } = useLazyQuery(\n `/v1/public/referral/verify_ref_code?referral_code=${refCode}`\n );\n\n useEffect(() => {\n const refCode = localStorage.getItem(\"referral_code\");\n if (refCode != null) {\n setRefCode(refCode);\n }\n }, []);\n\n const { referral_code, isLoading } = useGetReferralCode(account.accountId);\n\n const [bindRefCode, { error: updateOrderError, isMutating: updateMutating }] =\n useMutation(\"/v1/referral/bind\", \"POST\");\n\n useEffect(() => {\n if (refCode.length === 0) {\n setHelpText(\"\");\n }\n }, [refCode]);\n\n const enableTradingComplted = () => {\n toast.success(t(\"connector.walletConnected\"));\n // validate ref code and bind referral code\n if (refCode.length >= 4 && refCode.length <= 10)\n bindRefCode({ referral_code: refCode }).finally(() => {\n localStorage.removeItem(\"referral_code\");\n });\n };\n\n const checkRefCode = async (): Promise<string | undefined> => {\n if (refCode.length === 0) return Promise.resolve(undefined);\n\n if (refCode.length > 0 && (refCode.length < 4 || refCode.length > 10)) {\n return Promise.resolve(t(\"connector.referralCode.invalid\"));\n }\n\n const { exist } = await verifyRefCode();\n\n if (exist === false) {\n return Promise.resolve(t(\"connector.referralCode.notExist\"));\n }\n\n return Promise.resolve(undefined);\n };\n\n const showRefCodeInput = (referral_code?.length || 0) === 0 && !isLoading;\n\n const signIn = async () => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createAccount();\n };\n\n const enableTrading = async (remember: boolean) => {\n if (showRefCodeInput) {\n const info = await checkRefCode();\n if (typeof info !== \"undefined\") {\n setHelpText(info);\n return Promise.reject(-1);\n }\n }\n setHelpText(\"\");\n return createOrderlyKey(remember);\n };\n\n return {\n enableTrading,\n initAccountState: state.status,\n signIn,\n enableTradingComplted,\n refCode,\n setRefCode,\n helpText,\n showRefCodeInput,\n } as const;\n};\n","import { useAccount, useMediaQuery } from \"@orderly.network/hooks\";\nimport {\n AccountStatusEnum,\n MEDIA_TABLET,\n NetworkId,\n} from \"@orderly.network/types\";\nimport {\n Button,\n Either,\n Match,\n modal,\n Text,\n toast,\n useScreen,\n type ButtonProps,\n} from \"@orderly.network/ui\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { PropsWithChildren, ReactElement, useMemo } from \"react\";\nimport {\n WalletConnectorModalId,\n WalletConnectorSheetId,\n} from \"./walletConnector\";\nimport {\n ChainSelectorDialogId,\n ChainSelectorSheetId,\n} from \"@orderly.network/ui-chain-selector\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype ChainProps = {\n networkId?: NetworkId;\n bridgeLessOnly?: boolean;\n};\n\nexport type alertMessages = {\n connectWallet?: string;\n switchChain?: string;\n enableTrading?: string;\n signin?: string;\n};\n\nexport type AuthGuardProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n fallback?: (props: {\n validating: boolean;\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n }) => ReactElement;\n // indicator?: ReactElement;\n /**\n * Required state to be satisfied\n * @default AccountStatusEnum.EnableTrading\n */\n status?: AccountStatusEnum;\n\n bridgeLessOnly?: boolean;\n\n buttonProps?: ButtonProps;\n\n descriptions?: alertMessages;\n\n labels?: alertMessages;\n\n classNames?: {\n root?: string;\n description?: string;\n // button?: string;\n };\n\n networkId?: NetworkId;\n\n // validatingIndicator?: ReactElement;\n};\n\nconst AuthGuard = (props: PropsWithChildren<AuthGuardProps>) => {\n const {\n status,\n buttonProps,\n fallback,\n descriptions,\n classNames,\n networkId,\n id,\n bridgeLessOnly,\n // ...rest\n } = props;\n const { t } = useTranslation();\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const labels = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.signIn\"),\n ...props.labels,\n };\n\n // return Match(state.status)\n // .with(AccountStatusEnum.EnableTrading, () => props.children)\n // .with(AccountStatusEnum.DisableTrading, () => props.fallback)\n // .with(AccountStatusEnum.Validating, () => props.validatingIndicator)\n // .otherwise(() => props.fallback);\n //\n\n const Left = useMemo<ReactElement>(() => {\n if (typeof fallback !== \"undefined\") {\n return fallback({\n validating: state.validating,\n status: state.status,\n wrongNetwork,\n });\n }\n\n if (state.validating && !disabledConnect) {\n return (\n <StatusInfo\n // variant={\"gradient\"}\n angle={45}\n // fullWidth\n disabled\n loading\n description={descriptions?.connectWallet}\n id={id}\n type=\"button\"\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n\n return (\n <DefaultFallback\n bridgeLessOnly={bridgeLessOnly}\n status={state.status}\n buttonProps={{ ...buttonProps, id, type: \"button\" }}\n wrongNetwork={wrongNetwork}\n networkId={props.networkId}\n labels={labels}\n descriptions={descriptions}\n disabledConnect={disabledConnect}\n />\n );\n }, [state.status, state.validating, buttonProps, wrongNetwork]);\n\n /**\n * **Important: The chldren component will be rendered only if the status is equal to the required status and the network is correct.**\n */\n\n return (\n <Either\n value={state.status >= _status && !wrongNetwork && !disabledConnect}\n left={Left}\n >\n {props.children}\n </Either>\n );\n};\n\nconst DefaultFallback = (props: {\n status: AccountStatusEnum;\n wrongNetwork: boolean;\n buttonProps?: ButtonProps;\n networkId?: NetworkId;\n labels: alertMessages;\n bridgeLessOnly?: boolean;\n descriptions?: alertMessages;\n disabledConnect?: boolean;\n}) => {\n const { buttonProps, labels, descriptions } = props;\n const { t } = useTranslation();\n const { connectWallet } = useAppContext();\n const { account } = useAccount();\n const { isMobile } = useScreen();\n const matches = useMediaQuery(MEDIA_TABLET);\n\n const onConnectOrderly = () => {\n modal.show(matches ? WalletConnectorSheetId : WalletConnectorModalId).then(\n (r) => console.log(r),\n (error) => console.log(error)\n );\n };\n\n const onConnectWallet = async () => {\n const res = await connectWallet();\n\n if (!res) return;\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n if (\n (res?.status ?? AccountStatusEnum.NotConnected) <\n AccountStatusEnum.EnableTrading\n ) {\n onConnectOrderly();\n }\n }\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(isMobile ? ChainSelectorSheetId : ChainSelectorDialogId, {\n networkId: props.networkId,\n bridgeLessOnly: props.bridgeLessOnly,\n })\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (props.status >= AccountStatusEnum.Connected) {\n if (props.status < AccountStatusEnum.EnableTrading) {\n onConnectOrderly();\n } else {\n toast.success(t(\"connector.walletConnected\"));\n }\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n if (props.wrongNetwork && !props.disabledConnect) {\n return (\n <StatusInfo\n color=\"warning\"\n // size=\"md\"\n // fullWidth\n onClick={() => {\n switchChain();\n }}\n description={descriptions?.switchChain}\n {...buttonProps}\n >\n {labels.switchChain}\n </StatusInfo>\n );\n }\n\n return (\n <Match\n value={props.status}\n case={(value: AccountStatusEnum) => {\n if (value <= AccountStatusEnum.NotConnected || props.disabledConnect) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectWallet();\n }}\n // fullWidth\n variant={props.disabledConnect ? undefined : \"gradient\"}\n angle={45}\n description={descriptions?.connectWallet}\n disabled={props.disabledConnect}\n {...buttonProps}\n >\n {labels.connectWallet}\n </StatusInfo>\n );\n }\n if (value <= AccountStatusEnum.NotSignedIn) {\n return (\n <StatusInfo\n size=\"lg\"\n onClick={() => {\n onConnectOrderly();\n }}\n // fullWidth\n angle={45}\n description={descriptions?.signin}\n {...buttonProps}\n >\n {labels.signin}\n </StatusInfo>\n );\n }\n }}\n default={\n <StatusInfo\n size=\"lg\"\n // fullWidth\n description={descriptions?.enableTrading}\n {...buttonProps}\n onClick={() => onConnectOrderly()}\n >\n {labels.enableTrading}\n </StatusInfo>\n }\n />\n );\n};\n\nAuthGuard.displayName = \"AuthGuard\";\n\nconst StatusInfo = (\n props: ButtonProps & {\n description?: string;\n }\n) => {\n const { description, ...buttonProps } = props;\n return (\n <Flex direction={\"column\"}>\n <Button {...buttonProps}></Button>\n {!!description && (\n <Box mt={4} className=\"oui-leading-none\" style={{ lineHeight: 0 }}>\n <Text size=\"2xs\" intensity={36}>\n {description}\n </Text>\n </Box>\n )}\n </Flex>\n );\n};\n\nexport { AuthGuard };\n","import { PropsWithChildren, useMemo } from \"react\";\nimport {\n ExtensionPositionEnum,\n ExtensionSlot,\n DataTable,\n DataTableProps,\n} from \"@orderly.network/ui\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { alertMessages, AuthGuard } from \"./authGuard\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const AuthGuardDataTable = <RecordType extends unknown>(\n props: PropsWithChildren<\n DataTableProps<RecordType> &\n Omit<GuardViewProps, \"status\"> & {\n status?: AccountStatusEnum;\n classNames?: DataTableProps<RecordType>[\"classNames\"] & {\n authGuardDescription?: string;\n };\n }\n >\n) => {\n const {\n status,\n // message,\n labels,\n description,\n dataSource,\n ...rest\n } = props;\n const { state } = useAccount();\n const { wrongNetwork, disabledConnect } = useAppContext();\n\n const _status = useMemo(() => {\n if (status === undefined) {\n return state.status === AccountStatusEnum.EnableTradingWithoutConnected\n ? AccountStatusEnum.EnableTradingWithoutConnected\n : AccountStatusEnum.EnableTrading;\n }\n return status;\n }, [status, state.status]);\n\n const data = useDataTap(dataSource, {\n accountStatus: _status,\n });\n\n const ignoreLoadingCheck =\n wrongNetwork ||\n disabledConnect ||\n state.status < _status ||\n props.ignoreLoadingCheck;\n\n return (\n <DataTable\n dataSource={data}\n ignoreLoadingCheck={ignoreLoadingCheck}\n emptyView={\n <GuardView\n status={_status}\n description={description}\n labels={labels}\n className={props.classNames?.authGuardDescription}\n visible={!state.validating}\n />\n }\n manualPagination\n {...rest}\n />\n );\n};\n\ntype GuardViewProps = {\n status: AccountStatusEnum;\n description?: alertMessages;\n labels?: alertMessages;\n className?: string;\n visible?: boolean;\n};\n\nconst GuardView = (props: GuardViewProps) => {\n const { t } = useTranslation();\n\n const DESCRIPTIONS: alertMessages = {\n connectWallet: t(\"connector.connectWallet\"),\n switchChain: t(\"connector.wrongNetwork\"),\n enableTrading: t(\"connector.enableTrading\"),\n signin: t(\"connector.signIn\"),\n };\n\n const descriptions = { ...DESCRIPTIONS, ...props.description };\n if (!props.visible) return null;\n return (\n <Flex py={8}>\n <AuthGuard\n status={props.status}\n labels={props.labels}\n descriptions={descriptions}\n buttonProps={{\n size: \"md\",\n }}\n >\n <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n </AuthGuard>\n </Flex>\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Box, EmptyDataState } from \"@orderly.network/ui\";\nimport { AuthGuard } from \"./authGuard\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n hint?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n status?: AccountStatusEnum;\n};\n\nconst AuthGuardEmpty = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n const {\n hint = {\n connectWallet: t(\"connector.trade.connectWallet.tooltip\"),\n signIn: t(\"connector.trade.signIn.tooltip\"),\n enableTrading: t(\"connector.trade.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n status,\n } = props;\n\n return (\n <Box my={8}>\n <AuthGuard\n status={status}\n descriptions={{ ...hint, switchChain: hint.wrongNetwork }}\n >\n {props.children || <EmptyDataState />}\n </AuthGuard>\n </Box>\n );\n};\n\nAuthGuardEmpty.displayName = \"AuthGuardEmpty\";\n\nexport { AuthGuardEmpty };\n","import { PropsWithChildren, useMemo, useState } from \"react\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Tooltip } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\ntype AuthGuardProps = {\n content?: string;\n align?: \"center\" | \"end\" | \"start\";\n alignOffset?: number;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n opactiy?: number;\n tooltip?: {\n connectWallet?: string;\n signIn?: string;\n enableTrading?: string;\n wrongNetwork?: string;\n };\n};\n\nconst AuthGuardTooltip = (props: PropsWithChildren<AuthGuardProps>) => {\n const { t } = useTranslation();\n\n const {\n opactiy = 90,\n tooltip = {\n connectWallet: t(\"connector.setUp.connectWallet.tooltip\"),\n signIn: t(\"connector.setUp.signIn.tooltip\"),\n enableTrading: t(\"connector.setUp.enableTrading.tooltip\"),\n wrongNetwork: t(\"connector.wrongNetwork.tooltip\"),\n },\n } = props;\n\n const [open, setOpen] = useState(false);\n const { state } = useAccount();\n const isSupport = true;\n const { wrongNetwork } = useAppContext();\n\n const hint = useMemo(() => {\n if (wrongNetwork) {\n return tooltip?.wrongNetwork;\n }\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n return tooltip?.connectWallet;\n case AccountStatusEnum.NotSignedIn:\n return tooltip?.signIn;\n case AccountStatusEnum.DisabledTrading:\n return tooltip?.enableTrading;\n case AccountStatusEnum.EnableTrading: {\n return \"\";\n }\n default:\n return props.content;\n }\n }, [props.content, state, isSupport, tooltip]);\n\n const newOpacity = useMemo(() => {\n switch (state.status) {\n case AccountStatusEnum.NotConnected:\n case AccountStatusEnum.NotSignedIn:\n return opactiy;\n case AccountStatusEnum.EnableTrading: {\n return undefined;\n }\n default:\n return undefined;\n }\n }, [props.opactiy, state, isSupport]);\n\n return (\n <Tooltip\n open={hint ? open : false}\n onOpenChange={setOpen}\n content={hint}\n className=\"oui-text-2xs\"\n align={props.align}\n alignOffset={props.alignOffset}\n side={props.side}\n sideOffset={props.sideOffset}\n >\n <div\n style={{\n opacity: newOpacity,\n }}\n >\n {props.children}\n </div>\n </Tooltip>\n );\n};\n\nAuthGuardTooltip.displayName = \"AuthGuardTooltip\";\n\nexport { AuthGuardTooltip };\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orderly.network/ui-connector",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -17,11 +17,12 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@orderly.network/hooks": "2.0
|
|
21
|
-
"@orderly.network/
|
|
22
|
-
"@orderly.network/
|
|
23
|
-
"@orderly.network/
|
|
24
|
-
"@orderly.network/
|
|
20
|
+
"@orderly.network/hooks": "2.1.0",
|
|
21
|
+
"@orderly.network/types": "2.1.0",
|
|
22
|
+
"@orderly.network/ui": "2.1.0",
|
|
23
|
+
"@orderly.network/i18n": "2.1.0",
|
|
24
|
+
"@orderly.network/react-app": "2.1.0",
|
|
25
|
+
"@orderly.network/ui-chain-selector": "2.1.0"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
28
|
"@types/react": "^18.3.2",
|
|
@@ -30,7 +31,7 @@
|
|
|
30
31
|
"react-dom": "^18.2.0",
|
|
31
32
|
"tailwindcss": "^3.4.4",
|
|
32
33
|
"tsup": "^7.3.0",
|
|
33
|
-
"tsconfig": "0.
|
|
34
|
+
"tsconfig": "0.4.0"
|
|
34
35
|
},
|
|
35
36
|
"peerDependencies": {
|
|
36
37
|
"react": ">=18",
|