UNPKG

@toluade/squad-pay-react

Version:

<p align="center"> <img title="Squad" height="200" src="https://squadco.com/assets/squadbyhabari.svg" width="50%"/> </p>

1 lines 6.14 kB
{"version":3,"file":"index.cjs","sources":["../src/useSquadPay.ts","../src/SquadProvider.tsx"],"sourcesContent":["import { useEffect } from \"react\";\n\ninterface CustomWindow extends Window {\n squad?: any;\n}\n\ndeclare var window: CustomWindow;\n\nexport type SquadOtherParams = {\n currency_code?: \"NGN\" | \"USD\" | string;\n pass_charge?: boolean;\n redirect_link?: string;\n params?: Record<string, any>;\n onLoad?: () => void;\n onClose?: () => void;\n onSuccess?: () => void;\n};\n\ntype SquadPayProps = SquadOtherParams & {\n publicKey: string;\n};\n\nconst useSquadPay = ({\n publicKey,\n currency_code: parent_currency_code,\n pass_charge: parent_pass_charge = false,\n redirect_link: parent_redirect_link,\n params: parent_params = {},\n onLoad: parentOnLoad = () => null,\n onClose: parentOnClose = () => null,\n onSuccess: parentOnSuccess = () => null,\n}: SquadPayProps) => {\n function squadPay({\n amount,\n email,\n currency_code = \"NGN\",\n pass_charge = false,\n redirect_link = \"\",\n params = {},\n onLoad = () => null,\n onClose = () => null,\n onSuccess = () => null,\n }: {\n amount: number;\n email: string;\n } & SquadOtherParams) {\n const squadInstance = new window.squad({\n onClose: () => (onClose ? onClose() : parentOnClose()),\n onLoad: () => (onLoad ? onLoad() : parentOnLoad()),\n onSuccess: () => (onSuccess ? onSuccess() : parentOnSuccess()),\n key: publicKey,\n email: email,\n amount: amount * 100,\n ...params,\n ...parent_params,\n currency_code: currency_code ?? parent_currency_code,\n pass_charge: pass_charge !== undefined ? pass_charge : parent_pass_charge !== undefined ? parent_pass_charge : false,\n redirect_link: redirect_link ?? parent_redirect_link,\n });\n squadInstance.setup();\n squadInstance.open();\n }\n\n useEffect(() => {\n const base_url = \"https://checkout.squadco.com\";\n const script = document.createElement(\"script\");\n script.src = `${base_url}/widget/squad.min.js`;\n if (document) {\n document?.head?.appendChild(script);\n } else {\n throw new Error(\"Unable to access DOM\");\n }\n }, []);\n\n return squadPay;\n};\n\nexport default useSquadPay;\n","import React from \"react\";\nimport useSquadPay, { SquadOtherParams } from \"./useSquadPay\";\n\ntype SquadContextType = {\n squadPay: ({\n amount,\n email,\n currency_code,\n pass_charge,\n params,\n onLoad,\n onClose,\n onSuccess,\n }: {\n amount: number;\n email: string;\n } & SquadOtherParams) => void;\n};\n\nexport const SquadContext = React.createContext<SquadContextType>({\n squadPay: () => null,\n});\n\nconst useSquadContext = () => {\n const context = React.useContext(SquadContext);\n\n if (context) {\n return context;\n } else {\n throw new Error(\"Squad Context must be use inside the Squad Provider\");\n }\n};\n\ntype SquadProviderProps = SquadOtherParams & {\n publicKey: string;\n children: React.ReactNode;\n};\n\nconst SquadProvider = ({\n publicKey,\n children,\n currency_code,\n pass_charge,\n redirect_link,\n params,\n onLoad,\n onClose,\n onSuccess,\n}: SquadProviderProps) => {\n const squadPay = useSquadPay({\n publicKey,\n currency_code,\n pass_charge,\n redirect_link,\n params,\n onLoad,\n onClose,\n onSuccess,\n });\n return (\n <SquadContext.Provider value={{ squadPay }}>\n {children}\n </SquadContext.Provider>\n );\n};\n\nexport { useSquadContext };\n\nexport default SquadProvider;\n"],"names":["useSquadPay","_ref","publicKey","parent_currency_code","currency_code","_ref$pass_charge","pass_charge","parent_pass_charge","parent_redirect_link","redirect_link","_ref$params","params","parent_params","_ref$onLoad","onLoad","parentOnLoad","_ref$onClose","onClose","parentOnClose","_ref$onSuccess","onSuccess","parentOnSuccess","useEffect","_document","script","document","createElement","src","base_url","Error","head","appendChild","_ref2","_ref2$currency_code","_ref2$pass_charge","_ref2$redirect_link","_ref2$params","_ref2$onLoad","_ref2$onClose","_ref2$onSuccess","squadInstance","window","squad","_extends","key","email","amount","undefined","setup","open","SquadContext","React","createContext","squadPay","children","Provider","value","context","useContext"],"mappings":"2VAsBM,IAAAA,EAAc,SAAHC,GACf,IAAAC,EAASD,EAATC,UACeC,EAAoBF,EAAnCG,cAAaC,EAAAJ,EACbK,YAAaC,OAAkB,IAAAF,GAAQA,EACxBG,EAAoBP,EAAnCQ,cAAaC,EAAAT,EACbU,OAAQC,OAAa,IAAAF,EAAG,GAAEA,EAAAG,EAAAZ,EAC1Ba,OAAQC,WAAYF,EAAG,WAAM,OAAA,IAAI,EAAAA,EAAAG,EAAAf,EACjCgB,QAASC,OAAa,IAAAF,EAAG,WAAM,OAAA,IAAI,EAAAA,EAAAG,EAAAlB,EACnCmB,UAAWC,OAAkB,IAAHF,EAAG,WAAA,OAAU,IAAA,EAAAA,EA4CvC,OAXAG,EAASA,UAAC,WACR,IAGcC,EAFRC,EAASC,SAASC,cAAc,UAEtC,GADAF,EAAOG,IAASC,oDACZH,SAGF,UAAUI,MAAM,wBAFR,OAARN,EAAAE,WAAAF,OAAQA,EAARA,EAAUO,OAAVP,EAAgBQ,YAAYP,EAIhC,EAAG,IAxCH,SAAiBQ,GAaG,IAXbC,EAAAD,EACL5B,cAAAA,OAAgB,IAAH6B,EAAG,MAAKA,EAAAC,EAAAF,EACrB1B,YAAAA,OAAc,IAAH4B,GAAQA,EAAAC,EAAAH,EACnBvB,cAAAA,OAAa,IAAA0B,EAAG,GAAEA,EAAAC,EAAAJ,EAClBrB,OAAW0B,EAAAL,EACXlB,OAAAA,WAAMuB,EAAG,WAAM,OAAA,IAAI,EAAAA,EAAAC,EAAAN,EACnBf,QAAAA,OAAU,IAAHqB,EAAG,WAAA,OAAU,IAAA,EAAAA,EAAAC,EAAAP,EACpBZ,UAAAA,OAAY,IAAHmB,EAAG,WAAA,OAAU,IAAA,EAAAA,EAKhBC,EAAgB,IAAIC,OAAOC,MAAKC,EAAA,CACpC1B,QAAS,WAAO,OAAAA,EAAUA,IAAYC,GAAe,EACrDJ,OAAQ,WAAO,OAAAA,EAASA,IAAWC,GAAc,EACjDK,UAAW,WAAO,OAAAA,EAAYA,IAAcC,GAAiB,EAC7DuB,IAAK1C,EACL2C,MAjBGb,EAALa,MAkBEC,OAAiB,IAnBbd,EAANc,aAKM,IAAAV,EAAG,GAAEA,EAgBNxB,GACHR,cAA4B,MAAbA,EAAAA,EAAiBD,EAChCG,iBAA6ByC,IAAhBzC,EAA4BA,OAAqCyC,IAAvBxC,GAAmCA,EAC1FE,cAAeA,MAAAA,EAAAA,EAAiBD,KAElCgC,EAAcQ,QACdR,EAAcS,MAChB,CAcF,ECxDaC,EAAeC,EAAAA,QAAMC,cAAgC,CAChEC,SAAU,WAAM,OAAA,IAAI,0BAkBA,SAAHpD,GAUM,IARvBqD,EAAQrD,EAARqD,SASMD,EAAWrD,EAAY,CAC3BE,UAXOD,EAATC,UAYEE,cAVWH,EAAbG,cAWEE,YAVSL,EAAXK,YAWEG,cAVWR,EAAbQ,cAWEE,OAVIV,EAANU,OAWEG,OAVIb,EAANa,OAWEG,QAVKhB,EAAPgB,QAWEG,UAVOnB,EAATmB,YAYA,OACE+B,UAAAzB,cAACwB,EAAaK,SAAS,CAAAC,MAAO,CAAEH,SAAAA,IAC7BC,EAGP,0BAzCwB,WACtB,IAAMG,EAAUN,EAAK,QAACO,WAAWR,GAEjC,GAAIO,EACF,OAAOA,EAEP,MAAM,IAAI5B,MAAM,sDAEpB"}