{"version":3,"file":"static/js/main.e5366911.js","mappings":"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","sources":["components/LoginModal.tsx","models/app.ts","pages/Register/index.tsx","components/CoffeeButton.tsx","components/PeopleCard.tsx","components/BuyCoffeeModal.tsx","pages/Dashboard/index.tsx","pages/Empty/index.tsx","canisters/buymecoffee/index.js","pages/Layout/MainLayout.tsx","App.tsx"],"sourcesContent":["import { IconMoneyExchangeStroked, IconUserCircle } from '@douyinfe/semi-icons';\nimport { Button, List, Modal } from '@douyinfe/semi-ui';\n\ninterface LoginModalInterface {\n logout: () => Promise;\n deleteME: () => Promise;\n setModalVisible: (status: boolean) => void;\n modalVisible: boolean;\n principal: string;\n wallet: string;\n name?: string;\n}\n\nexport const LoginModal = ({\n logout,\n deleteME,\n setModalVisible,\n modalVisible,\n principal,\n wallet,\n name,\n}: LoginModalInterface) => {\n const btnStyle = {\n // width: 240,\n margin: '4px 0px 20px',\n padding: '30px 120px',\n };\n const footer = (\n
\n setModalVisible(false)}\n style={btnStyle}>\n Next time\n \n \n Logging out\n \n \n Modal.error({\n title: 'You really wanna delete yourselve?',\n content: 'There is no turning back!!!',\n onOk: async () => {\n const deleteResult = await deleteME();\n if (deleteResult) {\n await logout();\n }\n },\n })\n }\n style={btnStyle}>\n DELETE ME\n \n
\n );\n\n const data = [\n {\n icon: (\n \n ),\n title: 'You Principal ID is :',\n content: principal,\n },\n\n {\n icon: (\n \n ),\n title: 'Your Wallet Address is ',\n content: wallet,\n },\n ];\n return (\n {\n setModalVisible(false);\n }}\n footer={footer}\n style={{ width: '100%', padding: '0 20px', maxWidth: 440 }}>\n \n {name ?? 'Unknown Name'}\n \n (\n \n \n {item.title}\n \n \n {item.content}\n

\n \n }\n />\n )}\n />\n \n );\n};\n","import { ActorSubclass } from '@dfinity/agent';\nimport { model } from '@modern-js/runtime/model';\nimport { BuyMeCoffee } from '@/canisters/buymecoffee/types';\n\ninterface AppModelState {\n actor: ActorSubclass | undefined;\n principal: string;\n wallet: string;\n name?: string;\n isAuth: boolean;\n}\n\nexport const appModel = model('appModel').define<{ state: AppModelState }>({\n state: {\n actor: undefined,\n principal: 'unknown',\n wallet: 'unknown',\n name: undefined,\n isAuth: false,\n },\n});\n","import { ActorSubclass } from '@dfinity/agent';\nimport { Button, Form, Modal, Typography } from '@douyinfe/semi-ui';\nimport { useEffect, useState } from 'react';\nimport { FormApi } from '@douyinfe/semi-ui/lib/es/form';\nimport { useModel } from '@modern-js/runtime/model';\nimport { useHistory } from '@modern-js/runtime/router';\nimport {\n BuyMeCoffee,\n People,\n Error as CoffeeError,\n} from '@/canisters/buymecoffee/types';\nimport { appModel } from '@/models/app';\n\nexport const Register = () => {\n const [state, actions] = useModel(appModel);\n const { actor, wallet, principal, name } = state;\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n\n const registerPeople = async (values: Record) => {\n setLoading(true);\n const result = await actor?.create({\n name: values.name,\n wallet: values.wallet,\n });\n\n setLoading(false);\n if ((result as { ok: People }).ok !== undefined) {\n const res = (result as { ok: People }).ok;\n actions.setName(res.name);\n actions.setPrincipal(res.id.toText());\n actions.setWallet(res.wallet);\n history.push('/');\n } else {\n Modal.error({\n title: 'Unfortunately, there is an error',\n content:\n result !== undefined\n ? JSON.stringify((result as { err: CoffeeError }).err)\n : 'Error Unknown',\n });\n }\n };\n\n const [walletFormApi, setWalletFormApi] = useState(\n undefined,\n );\n\n return (\n <>\n Name Yourself\n registerPeople(values)}\n initValues={{ wallet, principal }}\n style={{ width: '100%' }}\n getFormApi={formApi => {\n setWalletFormApi(formApi);\n }}>\n {({ formState, values, formApi }) => (\n <>\n \n \n \n\n \n I have read and agree to the terms of service\n \n \n \n Sign Me Up\n \n \n \n )}\n \n \n );\n};\n","export function CoffeeIcon() {\n return (\n \n \n \n \n );\n}\n","import { Button, Card, Icon } from '@douyinfe/semi-ui';\nimport Meta from '@douyinfe/semi-ui/lib/es/card/meta';\nimport { CoffeeIcon } from './CoffeeButton';\nimport { PeopleItem } from '@/canisters/buymecoffee/types';\n\ninterface PeopleCardInterface {\n peopleItem: PeopleItem;\n onBuyClick: (peopleItem: PeopleItem) => void;\n}\nexport const PeopleCard = ({ peopleItem, onBuyClick }: PeopleCardInterface) => (\n }\n onClick={() => onBuyClick(peopleItem)}>\n Buy Coffee\n ,\n ]}\n headerLine={false}\n cover={\n \n }>\n \n \n);\n","import { IconUserCircle } from '@douyinfe/semi-icons';\nimport { Button, Input, List, Modal } from '@douyinfe/semi-ui';\nimport { useState } from 'react';\nimport { CoffeeIcon } from './CoffeeButton';\n\ninterface CheckoutInterface {\n wallet: string;\n amount: string;\n}\n\ninterface BuyCoffeeModalInterface {\n checkout: ({ wallet, amount }: CheckoutInterface) => Promise;\n setModalVisible: (status: boolean) => void;\n modalVisible: boolean;\n principal: string;\n wallet: string;\n name?: string;\n}\n\nexport const BuyCoffeeModal = ({\n checkout,\n setModalVisible,\n modalVisible,\n principal,\n wallet,\n name,\n}: BuyCoffeeModalInterface) => {\n const [amount, setAmount] = useState('');\n const btnStyle = {\n // width: 240,\n margin: '4px 0px 20px',\n padding: '30px 120px',\n maxWidth: '100%',\n };\n const footer = (\n
\n }\n onClick={() => checkout({ wallet, amount })}\n style={btnStyle}>\n Buy Coffee\n \n {\n setModalVisible(false);\n setAmount('');\n }}\n style={btnStyle}>\n Maybe Not\n \n
\n );\n\n const data = [\n {\n icon: (\n \n ),\n title: 'Principal ID is',\n content: principal,\n },\n ];\n return (\n checkout({ wallet, amount })}\n onCancel={() => {\n setAmount('');\n setModalVisible(false);\n }}\n footer={footer}\n style={{ width: '100%', padding: '0 20px', maxWidth: 440 }}>\n \n Buy {name ?? 'Unknown Name'} a coffee\n \n (\n \n \n {item.title}\n \n \n {item.content}\n

\n \n }\n />\n )}\n />\n setAmount(val)}\n placeholder={'between 0.00001 to 10000'}\n required={true}\n addonAfter=\"ICP\"\n />\n \n );\n};\n","import { useModel } from '@modern-js/runtime/model';\nimport { useEffect, useState } from 'react';\nimport { Actor, HttpAgent } from '@dfinity/agent';\nimport { Space } from '@douyinfe/semi-ui';\nimport { Principal } from '@dfinity/principal';\nimport { IC } from '@astrox/connection';\nimport { appModel } from '@/models/app';\nimport { idlFactory } from '@/canisters/buymecoffee';\nimport { BuyMeCoffee, PeopleItem } from '@/canisters/buymecoffee/types';\nimport { PeopleCard } from '@/components/PeopleCard';\nimport { BuyCoffeeModal } from '@/components/BuyCoffeeModal';\n\nexport const balanceFromString = (balance: string, decimal = 8): bigint => {\n const list = balance.split('.');\n const aboveZero = list[0];\n const aboveZeroBigInt = BigInt(aboveZero) * BigInt(1 * 10 ** decimal);\n let belowZeroBigInt = BigInt(0);\n const belowZero = list[1];\n if (belowZero !== undefined) {\n belowZeroBigInt = BigInt(\n belowZero.substring(0, decimal).padEnd(decimal, '0'),\n );\n }\n return aboveZeroBigInt + belowZeroBigInt;\n};\n\nexport const Dashboard = () => {\n const [state] = useModel(appModel);\n const [peoples, setPeoples] = useState(undefined);\n const [myItem, setMyItem] = useState(undefined);\n const [modalVisible, setModalVisible] = useState(false);\n const [choosePrincipal, setChoosePrincipal] = useState(\n undefined,\n );\n const [chooseName, setChooseName] = useState(undefined);\n const [chooseWallet, setChooseWallet] = useState(\n undefined,\n );\n\n const { actor, principal } = state;\n\n const getAllPeople = async () => {\n const allPeople = await actor?.allPeople();\n setPeoples(\n allPeople?.sort((a, b) =>\n a.principal === Principal.fromText(principal) ? 0 : -1,\n ),\n );\n return allPeople;\n };\n\n useEffect(() => {\n (async () => {\n await getAllPeople();\n })();\n }, [actor]);\n\n return (\n \n \n {peoples?.map((item, idex) => (\n {\n setModalVisible(true);\n setChooseName(chooseItem.people.name);\n setChoosePrincipal(chooseItem.people.id.toText());\n setChooseWallet(chooseItem.people.wallet);\n }}\n />\n ))}\n \n {\n const ic = (window as any).ic as IC;\n const result = await ic.requestTransfer({\n to: thisWallet,\n from: ic.wallet!,\n amount: balanceFromString(amount),\n sendOpts: {},\n });\n console.log({ result });\n if (result !== undefined) {\n setModalVisible(false);\n setChooseName(undefined);\n setChoosePrincipal(undefined);\n setChooseWallet(undefined);\n }\n }}\n modalVisible={modalVisible}\n setModalVisible={val => {\n setModalVisible(val);\n setChooseName(undefined);\n setChoosePrincipal(undefined);\n setChooseWallet(undefined);\n }}\n principal={choosePrincipal ?? ''}\n wallet={chooseWallet ?? ''}\n name={chooseName}\n />\n \n );\n};\n","import {\n IllustrationNoContent,\n IllustrationNoContentDark,\n} from '@douyinfe/semi-illustrations';\nimport { Button, Empty, Typography } from '@douyinfe/semi-ui';\n\ninterface EmptyPageProps {\n login: () => Promise;\n}\n\nexport const EmptyPage = ({ login }: EmptyPageProps) => (\n }\n style={{ marginTop: 64 }}\n darkModeImage={\n \n }\n title=\"A TECHNICAL DEMO for Developers\"\n description=\"Probably nothing\">\n

\n If you ARE NOT a developer, or do not understand what it is, just\n leave it here, nothing harms or affects your assets\n

\n

\n If you ARE a developer, we simply show you what we can do with ME.\n eg: login and make transactions, without extension\n

\n
\n \n Login With ME\n \n
\n \n);\n","export const idlFactory = ({ IDL }) => {\n const ID = IDL.Principal;\n const Wallet = IDL.Text;\n const People = IDL.Record({\n id: ID,\n name: IDL.Text,\n wallet: Wallet,\n });\n const PeopleItem = IDL.Record({ principal: ID, people: People });\n const PeopleUpdate = IDL.Record({ name: IDL.Text, wallet: Wallet });\n const Error = IDL.Variant({\n WrongCaller: IDL.Null,\n NotFound: IDL.Null,\n NotAuthorized: IDL.Null,\n AlreadyExists: IDL.Null,\n });\n const Result = IDL.Variant({ ok: People, err: Error });\n const Result_1 = IDL.Variant({ ok: IDL.Bool, err: Error });\n const BuyMeCoffee = IDL.Service({\n allPeople: IDL.Func([], [IDL.Vec(PeopleItem)], ['query']),\n create: IDL.Func([PeopleUpdate], [Result], []),\n delete: IDL.Func([], [Result_1], []),\n read: IDL.Func([], [Result], ['query']),\n update: IDL.Func([PeopleUpdate], [Result], []),\n });\n return BuyMeCoffee;\n};\nexport const init = ({ IDL }) => [];\n","import { IC } from '@astrox/connection';\nimport { PermissionsType } from '@astrox/connection/lib/cjs/types';\nimport {\n IconCode,\n IconHome,\n IconMember,\n IconMoon,\n IconSemiLogo,\n IconSun,\n IconUser,\n} from '@douyinfe/semi-icons';\nimport {\n IllustrationNoContent,\n IllustrationNoContentDark,\n} from '@douyinfe/semi-illustrations';\nimport {\n Avatar,\n Button,\n Empty,\n Form,\n Layout,\n Nav,\n Skeleton,\n Typography,\n useFieldApi,\n} from '@douyinfe/semi-ui';\nimport {\n ReactChild,\n ReactFragment,\n ReactPortal,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { ActorSubclass } from '@dfinity/agent';\nimport { FormApi } from '@douyinfe/semi-ui/lib/es/form';\nimport { Route, Switch, useHistory } from '@modern-js/runtime/router';\nimport { useModel } from '@modern-js/runtime/model';\nimport { LoginModal } from '../../components/LoginModal';\nimport { Register } from '../Register';\nimport { Dashboard } from '../Dashboard';\nimport { EmptyPage } from '../Empty';\nimport { BuyMeCoffee, People, Result } from '@/canisters/buymecoffee/types';\nimport { idlFactory } from '@/canisters/buymecoffee';\nimport { appModel } from '@/models/app';\nimport '../../global.less';\n\nconst { Header, Footer, Content } = Layout;\nconst { Title } = Typography;\n\nexport const MainLayout = (children: any) => {\n const { body } = document;\n const [principal, setPrincipal] = useState('unknown');\n const [wallet, setWallet] = useState('unknown');\n const [isAuth, setIsAuth] = useState(false);\n const [name, setName] = useState(undefined);\n const [ic, setIC] = useState((window as any).ic);\n const [isLight, setIsLight] = useState(\n !body.hasAttribute('theme-mode'),\n );\n const [modalVisible, setModalVisible] = useState(false);\n const [actor, setActor] = useState | undefined>(\n undefined,\n );\n\n const [people, setPeople] = useState(undefined);\n const history = useHistory();\n const [state, actions] = useModel(appModel);\n\n const login = async () => {\n await IC.connect({\n useFrame: !(window.innerWidth < 768),\n signerProviderUrl: process.env.isProduction!\n ? 'https://63k2f-nyaaa-aaaah-aakla-cai.raw.ic0.app/signer'\n : 'http://localhost:8080/signer',\n walletProviderUrl: process.env.isProduction!\n ? 'https://63k2f-nyaaa-aaaah-aakla-cai.raw.ic0.app/transaction'\n : 'http://localhost:8080/transaction', // 'http://localhost:8080/transaction', // \"https://63k2f-nyaaa-aaaah-aakla-cai.raw.ic0.app/transaction\",\n identityProvider: process.env.isProduction!\n ? 'https://63k2f-nyaaa-aaaah-aakla-cai.raw.ic0.app/login#authorize'\n : 'http://localhost:8080/login#authorize', // 'http://localhost:8080/login#authorize', // 'https://63k2f-nyaaa-aaaah-aakla-cai.raw.ic0.app/login#authorize',\n permissions: [PermissionsType.identity, PermissionsType.wallet],\n onAuthenticated: (icInstance: IC) => {\n const thisIC = window.ic ?? icInstance;\n setPrincipal(thisIC.principal.toText());\n setWallet(thisIC.wallet ?? 'unknown');\n setIsAuth(true);\n actions.setPrincipal(thisIC.principal.toText());\n actions.setWallet(thisIC.wallet ?? 'unknown');\n actions.setIsAuth(true);\n setIC(thisIC);\n const thisActor = icInstance.createActor(\n idlFactory,\n process.env.CANISTER_ID!,\n );\n setActor(thisActor);\n actions.setActor(thisActor);\n },\n });\n };\n const logout = async () => {\n await ic.disconnect();\n setDefault();\n history.push('/empty');\n };\n\n const deleteME = async () => {\n const result = await actor?.delete();\n if ((result as { ok: boolean }).ok) {\n return true;\n } else {\n return false;\n }\n };\n\n const setDefault = () => {\n setPrincipal('unknown');\n setWallet('unknown');\n setIsAuth(false);\n setName(undefined);\n actions.setPrincipal('unknown');\n actions.setWallet('unknown');\n actions.setName(undefined);\n actions.setIsAuth(false);\n setPeople(undefined);\n setModalVisible(false);\n };\n\n const switchMode = () => {\n if (body.hasAttribute('theme-mode')) {\n body.removeAttribute('theme-mode');\n setIsLight(true);\n } else {\n body.setAttribute('theme-mode', 'dark');\n setIsLight(false);\n }\n };\n\n const getPeople = async () => {\n try {\n const result = await actor?.read();\n if (\n result !== undefined &&\n (result as unknown as { ok: People }).ok !== undefined\n ) {\n setPeople((result as unknown as { ok: People }).ok);\n return (result as unknown as { ok: People }).ok;\n } else {\n setPeople(undefined);\n return undefined;\n }\n } catch (error) {\n throw error as Error;\n }\n };\n\n useEffect(() => {\n if (sessionStorage.getItem('ic-delegation') !== null) {\n (async () => {\n await login();\n })();\n } else {\n history.push('/empty');\n }\n }, []);\n\n useEffect(() => {\n if (actor !== undefined) {\n if (isAuth) {\n if (!people) {\n (async () => {\n const result = await getPeople();\n if (!result) {\n history.push('/register');\n } else {\n actions.setPrincipal(result.id.toText());\n actions.setWallet(result.wallet);\n actions.setName(result.name);\n setName(result.name);\n history.push('/dashboard');\n }\n })();\n } else {\n actions.setPrincipal(people.id.toText());\n actions.setWallet(people.wallet);\n actions.setName(people.name);\n setName(people.name);\n history.push('/dashboard');\n }\n }\n }\n }, [actor]);\n\n return (\n \n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
404
\n
\n
\n \n \n {/* \n \n \n Copyright © 2021 AstroX.Network. All Rights Reserved. \n \n \n Github\n Twitter\n \n */}\n \n );\n};\n","import { Switch, Route } from '@modern-js/runtime/router';\n\n// import './global.less';\nimport { MainLayout } from './pages/Layout/MainLayout';\n\nconst App: React.FC = () => ;\n\nexport default App;\n"],"names":["LoginModal","logout","deleteME","setModalVisible","modalVisible","principal","wallet","name","btnStyle","margin","padding","footer","style","textAlign","type","theme","onClick","Modal","title","content","onOk","data","icon","fontSize","color","header","visible","onCancel","width","maxWidth","dataSource","split","renderItem","item","main","marginTop","wordBreak","appModel","model","define","state","actor","undefined","isAuth","Register","useModel","actions","useState","loading","setLoading","history","useHistory","registerPeople","values","create","result","ok","res","setName","setPrincipal","id","toText","setWallet","push","JSON","stringify","err","setWalletFormApi","onSubmit","initValues","getFormApi","formApi","formState","field","label","disabled","required","placeholder","noLabel","display","justifyContent","alignItems","agree","htmlType","CoffeeIcon","className","viewBox","version","xmlns","height","d","fill","PeopleCard","peopleItem","onBuyClick","size","headerLine","cover","alt","src","people","description","BuyCoffeeModal","checkout","amount","setAmount","onChange","val","addonAfter","balanceFromString","balance","decimal","list","aboveZero","aboveZeroBigInt","BigInt","belowZeroBigInt","belowZero","substring","padEnd","Dashboard","peoples","setPeoples","choosePrincipal","setChoosePrincipal","chooseName","setChooseName","chooseWallet","setChooseWallet","getAllPeople","allPeople","sort","a","b","Principal","useEffect","borderRadius","border","flex","wrap","map","idex","chooseItem","thisWallet","ic","window","requestTransfer","to","from","sendOpts","console","log","EmptyPage","login","image","IllustrationNoContent","darkModeImage","IllustrationNoContentDark","idlFactory","IDL","ID","Wallet","Text","People","Record","PeopleItem","PeopleUpdate","Error","Variant","WrongCaller","Null","NotFound","NotAuthorized","AlreadyExists","Result","Result_1","Bool","Service","Func","Vec","delete","read","update","Header","Layout","Content","MainLayout","Typography","children","body","document","setIsAuth","setIC","hasAttribute","isLight","setIsLight","setActor","setPeople","IC","useFrame","innerWidth","signerProviderUrl","walletProviderUrl","identityProvider","permissions","PermissionsType","onAuthenticated","icInstance","thisIC","thisActor","createActor","process","disconnect","setDefault","getPeople","sessionStorage","getItem","minHeight","backgroundColor","mode","defaultSelectedKeys","itemKey","text","link","marginRight","removeAttribute","setAttribute","toUpperCase","flexDirection","innerHeight","exact","path"],"sourceRoot":""}