dq-cus-lib 1.2.1 → 1.3.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.
Files changed (52) hide show
  1. package/dist/chunk-3P3BZ5GA.js +12 -0
  2. package/dist/chunk-3P3BZ5GA.js.map +1 -0
  3. package/dist/{chunk-767TKJQF.js → chunk-72Y4GEJL.js} +4 -3
  4. package/dist/chunk-72Y4GEJL.js.map +1 -0
  5. package/dist/{chunk-LLX3WGKJ.js → chunk-EAURBQWA.js} +3 -3
  6. package/dist/{chunk-LLX3WGKJ.js.map → chunk-EAURBQWA.js.map} +1 -1
  7. package/dist/chunk-QE2XW565.js +21 -0
  8. package/dist/chunk-QE2XW565.js.map +1 -0
  9. package/dist/{chunk-6B3NAL4F.js → chunk-QLPZ6FY2.js} +6 -2
  10. package/dist/chunk-QLPZ6FY2.js.map +1 -0
  11. package/dist/{chunk-PWBSF4OA.js → chunk-QYP3Y6HE.js} +9 -3
  12. package/dist/chunk-QYP3Y6HE.js.map +1 -0
  13. package/dist/chunk-UPB7Z3GU.js +35 -0
  14. package/dist/chunk-UPB7Z3GU.js.map +1 -0
  15. package/dist/chunk-WBQ6B6D4.js +30 -0
  16. package/dist/chunk-WBQ6B6D4.js.map +1 -0
  17. package/dist/{chunk-4H3O2JGN.js → chunk-WZJE5VHZ.js} +4 -4
  18. package/dist/chunk-WZJE5VHZ.js.map +1 -0
  19. package/dist/index.css +78 -0
  20. package/dist/index.css.map +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/pages/broker-account.page.d.ts +9 -0
  23. package/dist/pages/broker-account.page.js +221 -0
  24. package/dist/pages/broker-account.page.js.map +1 -0
  25. package/dist/pages/broker-auth.page.js +7 -5
  26. package/dist/pages/broker-auth.page.js.map +1 -1
  27. package/dist/pages/broker-login.page.js +11 -49
  28. package/dist/pages/broker-login.page.js.map +1 -1
  29. package/dist/pages/broker-settings.page.js +59 -50
  30. package/dist/pages/broker-settings.page.js.map +1 -1
  31. package/dist/pages/brokers.page.d.ts +9 -0
  32. package/dist/pages/brokers.page.js +75 -0
  33. package/dist/pages/brokers.page.js.map +1 -0
  34. package/dist/pages/error.page.js +1 -1
  35. package/dist/pages/landing.page.js +3 -3
  36. package/dist/pages/layout.page.js +1 -1
  37. package/dist/pages/logout-error.page.js +4 -7
  38. package/dist/pages/logout-error.page.js.map +1 -1
  39. package/dist/pages/profile.page.d.ts +9 -0
  40. package/dist/pages/profile.page.js +297 -0
  41. package/dist/pages/profile.page.js.map +1 -0
  42. package/dist/pages/signin.page.js +8 -5
  43. package/dist/pages/signin.page.js.map +1 -1
  44. package/package.json +4 -1
  45. package/dist/chunk-4H3O2JGN.js.map +0 -1
  46. package/dist/chunk-6B3NAL4F.js.map +0 -1
  47. package/dist/chunk-767TKJQF.js.map +0 -1
  48. package/dist/chunk-CN3GJW6R.js +0 -16
  49. package/dist/chunk-CN3GJW6R.js.map +0 -1
  50. package/dist/chunk-IBJKEVYR.js +0 -12
  51. package/dist/chunk-IBJKEVYR.js.map +0 -1
  52. package/dist/chunk-PWBSF4OA.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/broker-account.page/incorrect-broker.tsx","../../src/components/broker-account.page/constants.tsx","../../src/components/broker-account.page/api-calls.tsx","../../src/components/broker-account.page/brokers/common.tsx","../../src/components/broker-account.page/brokers/business-rules.tsx","../../src/components/broker-account.page/login-wrapper.tsx","../../src/pages/broker-account.page.tsx"],"names":["Grid","useEffect","showValidationAlert","ALERT_TYPES","jsx","jsxs","Alerts","alertService","Container"],"mappings":"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","file":"broker-account.page.js","sourcesContent":["import React, { useEffect } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from \"@mui/material/Grid\";\nimport { ALERT_TYPES, clearValidationAlert, showValidationAlert } from \"sspart-fe-lib\";\nimport { Alerts } from \"sspart-fe-lib\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\nconst IncorrectBroker: React.FC = () => {\n \n useEffect(() => {\n showValidationAlert(ALERT_TYPES.ERROR, STATUS_CODE_MESSAGES.INVALID_BROKER_SELECTED, 'broker-auth');\n return () => {\n clearValidationAlert(\"broker-auth\");\n };\n }, []);\n\n return (\n <Container maxWidth=\"sm\" sx={{ mt: 2, mb: 4 }}>\n <Grid sx={{ my: 2 }}>\n <h4 className=\"page-heading\">Broker login</h4>\n </Grid>\n <Alerts id=\"broker-auth\" />\n </Container>\n );\n};\n\nexport default IncorrectBroker;\n","export const SUPPORTED_BROKERS = {\n ANGEL_ONE: \"AngelOne\",\n FYERS: \"Fyers\"\n}\n\nexport const BROKER_NAMES: Record<string, string> = {\n Fyers: \"Fyers\",\n AngelOne: \"Angel One\"\n};\n\nexport const BROKER_MESSAGES = {\n COMMON: \"DheQuest securely encrypts and stores your broker credentials to provide a seamless trading experience. We automatically log you in to your broker account when required. Your credentials are never shared with any third party.\",\n FYERS: \"Fyers requires you to log in again every 15 days\",\n}","import { postcall, patchcall } from \"sspart-fe-lib\";\nimport { CUSTOMER_ROUTES } from \"../../resources/routes\";\n\nexport const getBrokerAccount = async (data: {}): Promise<any> => {\n return await postcall(CUSTOMER_ROUTES(\"broker_account\"), data, \"broker-account-fetch\");\n};\n\nexport const updateBrokerAccount = async (data: {}): Promise<any> => {\n return await patchcall(CUSTOMER_ROUTES(\"broker_account\"), data, \"broker-account\");\n};","import React, { useState, useEffect, SubmitEventHandler, useCallback } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport LoginImage from \"../../common/login-image\";\nimport { STATUS_CODE_MESSAGES } from \"../../../resources/status\";\nimport { ALERT_TYPES, Alerts, alertService, Button, \n PasswordTextbox, showValidationAlert, Textbox } from \"sspart-fe-lib\";\nimport { getBrokerAccount, updateBrokerAccount } from \"../api-calls\";\nimport LoadingComp from \"../../common/loading\";\nimport { BROKER_MESSAGES } from \"../constants\";\n\ninterface CommonBrokerProps {\n image: string;\n brokerName: string;\n broker: string;\n username: string;\n password: string;\n validatecb: (state: { name: string; broker_userid: string; broker_password: string }) => boolean;\n message?: string;\n}\n\nconst CommonBroker: React.FC<CommonBrokerProps> = ({ image, brokerName, broker, username, password, validatecb, message }) => {\n\n const [loading, setLoading] = useState(true);\n const [state, setState] = useState({ name: \"\", broker_userid: \"\", broker_password: \"\" });\n const [refresh, setRefresh] = useState<boolean>(false);\n\n const fetchBrokerAccount = useCallback(async () => {\n const response = await getBrokerAccount({ broker });\n if (response) setState(response.brokerAccount || { name: \"\", broker_userid: \"\", broker_password: \"\" });\n setLoading(false);\n }, [broker]);\n\n useEffect(() => {\n fetchBrokerAccount();\n return () => { alertService.resetData(); };\n }, [fetchBrokerAccount]);\n\n const onChange = (name: string, value: string) => {\n setState((prevState) => ({\n ...prevState,\n [name]: value\n }));\n };\n\n const onLoginClick: SubmitEventHandler<HTMLElement> = async (event) => {\n event.preventDefault();\n if (validatecb(state)) {\n alertService.resetData();\n const response = await updateBrokerAccount({\n broker, name: state.name, broker_userid: state.broker_userid, \n broker_password: state.broker_password \n });\n if (response && response.success) {\n showValidationAlert(ALERT_TYPES.SUCCESS, STATUS_CODE_MESSAGES.BROKER_ACCOUNT_SUCCESS_MESSAGE, 'broker-account');\n setState({ name: \"\", broker_userid: \"\", broker_password: \"\" });\n } else {\n setRefresh(!refresh);\n }\n } else {\n setRefresh(!refresh);\n }\n };\n\n const ads = alertService.getData();\n\n if(loading) return <LoadingComp />;\n\n return (\n <Grid container spacing={0} direction=\"column\" alignItems=\"center\" justifyContent=\"center\">\n <LoginImage image={image} title={brokerName} className=\"sign-in-logo-small\" />\n <Grid>\n <Grid>\n <Typography variant=\"caption\">\n This is DheQuest's {brokerName} account page\n </Typography>\n </Grid>\n </Grid>\n <Box component=\"form\" onSubmit={onLoginClick} noValidate sx={{ m: 0, width: \"100%\" }}>\n <Box component=\"div\" sx={{ my: 2 }} />\n <Alerts id=\"broker-account\" />\n <Box component=\"div\" sx={{ my: 2 }} />\n <Textbox id=\"name\" name=\"name\" mandate validation={ads.name} type=\"text\"\n placeholder=\"Account Name\" size=\"medium\" value={state.name} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <Textbox id=\"broker_userid\" name=\"broker_userid\" mandate validation={ads.broker_userid} type=\"text\"\n placeholder={username} size=\"medium\" value={state.broker_userid} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <PasswordTextbox id=\"broker_password\" name=\"broker_password\" mandate validation={ads.broker_password} \n placeholder={password} size=\"medium\" value={state.broker_password} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <Button text=\"Save\" type=\"submit\" />\n <Box component=\"div\" sx={{ my: 2 }} />\n <div className=\"pro-tip-text\">\n Note: {BROKER_MESSAGES.COMMON}\n </div>\n {message && \n <div>\n <Box component=\"div\" sx={{ my: 2 }} />\n <div className=\"pro-tip-text\">\n Note: {message}\n </div>\n </div>\n }\n </Box>\n </Grid>\n );\n};\n\nexport default CommonBroker;\n","import { alertService } from \"sspart-fe-lib\";\nimport { STATUS_CODE_MESSAGES } from \"../../../resources/status\";\n\nexport interface FormData {\n name: string;\n broker_userid: string;\n broker_password: string;\n}\n\nexport const validateSignIn = (data: FormData): boolean => {\n const errors: Record<string, string> = {};\n\n if (!data.name) {\n errors[\"name\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_NAME;\n }\n\n if (!data.broker_userid) {\n errors[\"broker_userid\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_USERNAME;\n }\n\n if (!data.broker_password) {\n errors[\"broker_password\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_PASSWORD;\n }\n\n alertService.setData(errors);\n\n return Object.keys(errors).length === 0;\n};","import React from \"react\";\nimport IncorrectBroker from \"./incorrect-broker\";\nimport { BROKER_MESSAGES, SUPPORTED_BROKERS } from \"./constants\";\nimport CommonBroker from \"./brokers/common\";\nimport { validateSignIn } from \"./brokers/business-rules\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\n\ninterface LoginWrapperProps {\n origin: string;\n}\n\nconst LoginWrapper: React.FC<LoginWrapperProps> = ({ origin }) => {\n switch (origin) {\n case SUPPORTED_BROKERS.ANGEL_ONE:\n return <CommonBroker broker={SUPPORTED_BROKERS.ANGEL_ONE} validatecb={validateSignIn} \n image={IMAGE_LINKS.ANGEL_ONE} brokerName=\"Angel One\" username=\"Username\" password=\"MPIN\" />;\n case SUPPORTED_BROKERS.FYERS:\n return <CommonBroker broker={SUPPORTED_BROKERS.FYERS} validatecb={validateSignIn} \n image={IMAGE_LINKS.FYERS} brokerName=\"Fyers\" username=\"Username\" password=\"PIN\"\n message={BROKER_MESSAGES.FYERS} />;\n default:\n return <IncorrectBroker />;\n }\n};\n\nexport default LoginWrapper;\n","import React, { useEffect } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\nimport LoginWrapper from \"../components/broker-account.page/login-wrapper\";\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { TITLES } from '../resources/constants';\nimport { Alerts } from \"sspart-fe-lib\";\n\ninterface BrokerAccountPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerAccountPage: React.FC<BrokerAccountPageProps> = ({ navigate }) => {\n\n const { id } = useParams();\n\n useEffect(() => {\n document.title = TITLES.BROKER_ACCOUNT_PAGE_TITLE;\n }, []);\n\n return (\n <Grid container spacing={0} justifyContent=\"center\" alignItems=\"center\" display=\"flex\" sx={{ minHeight: \"90dvh\" }}>\n <Container component=\"main\" maxWidth=\"xs\">\n <Alerts id=\"broker-account-fetch\" className=\"mt-2 mb-4\"/>\n <Card>\n <div className=\"sign-in-card-wrapper\">\n <LoginWrapper origin={id ?? \"\"}/>\n </div>\n </Card>\n </Container>\n </Grid>\n );\n};\n\nexport default BrokerAccountPage;"]}
@@ -1,8 +1,10 @@
1
1
  import { SUPPORTED_BROKERS, BROKER_NAMES } from '../chunk-QH4BPB2K.js';
2
- import { STATUS_CODE_MESSAGES } from '../chunk-IBJKEVYR.js';
3
- import { updateBrokerAuthData } from '../chunk-CN3GJW6R.js';
4
- import '../chunk-6B3NAL4F.js';
5
- import { TITLES } from '../chunk-PWBSF4OA.js';
2
+ import { updateBrokerAuthData } from '../chunk-WBQ6B6D4.js';
3
+ import { STATUS_CODE_MESSAGES } from '../chunk-QE2XW565.js';
4
+ import { loading_default } from '../chunk-3P3BZ5GA.js';
5
+ import '../chunk-QLPZ6FY2.js';
6
+ import '../chunk-72Y4GEJL.js';
7
+ import { TITLES } from '../chunk-QYP3Y6HE.js';
6
8
  import { useState, useCallback, useEffect } from 'react';
7
9
  import Container from '@mui/material/Container';
8
10
  import Grid from '@mui/material/Grid';
@@ -67,7 +69,7 @@ var BrokerAuthPage = ({ navigate }) => {
67
69
  /* @__PURE__ */ jsx(Box, { sx: { my: 2 } }),
68
70
  /* @__PURE__ */ jsxs(Grid, { children: [
69
71
  /* @__PURE__ */ jsx(Alerts, { id: "broker-auth", className: "mt-2 mb-4" }),
70
- success ? /* @__PURE__ */ jsx(success_default, { origin: id ?? "" }) : /* @__PURE__ */ jsx("div", {})
72
+ success ? /* @__PURE__ */ jsx(success_default, { origin: id ?? "" }) : /* @__PURE__ */ jsx(loading_default, {})
71
73
  ] })
72
74
  ] });
73
75
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/broker-login.page/auth-helper.tsx","../../src/components/broker-login.page/success.tsx","../../src/pages/broker-auth.page.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"broker-auth.page.js","sourcesContent":["import { SUPPORTED_BROKERS } from \"./constants\";\n\ninterface AuthenticationData {\n broker: string;\n data: Record<string, string | null>;\n}\n\nexport const getAuthenticationData = (\n origin: string,\n searchParams: URLSearchParams\n): AuthenticationData => {\n\n switch (origin) {\n case SUPPORTED_BROKERS.ANGEL_ONE:\n return {\n broker: SUPPORTED_BROKERS.ANGEL_ONE,\n data: {\n accessToken: searchParams.get(\"auth_token\") ?? \"\",\n feedToken: searchParams.get(\"feed_token\") ?? \"\",\n refreshToken: searchParams.get(\"refresh_token\") ?? \"\",\n },\n };\n case SUPPORTED_BROKERS.FYERS:\n return {\n broker: SUPPORTED_BROKERS.FYERS,\n data: {\n authCode: searchParams.get(\"auth_code\") ?? \"\",\n },\n };\n default:\n return {\n broker: origin,\n data: {},\n };\n }\n};","import React from \"react\";\nimport { BROKER_NAMES } from \"./constants\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\ninterface Props {\n origin: string;\n}\n\nconst Success: React.FC<Props> = ({ origin }) => {\n return (\n <div className=\"broker-auth-wrapper\">\n <div className=\"broker-auth-success\">\n <div className=\"text-center success\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"96\" width=\"96\" viewBox=\"0 0 48 48\">\n <path d=\"M21.05 33.1 35.2 18.95l-2.3-2.25-11.85 11.85-6-6-2.25 2.25ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 24q0-4.15 1.575-7.8 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24 4q4.15 0 7.8 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Z\"/>\n </svg>\n <div className=\"mt-4 broker-auth-success-message\">\n {BROKER_NAMES[origin] ?? \"Unknown Broker\"} authentication successful !!!\n </div>\n <div className=\"mt-4 broker-auth-sub-message\">\n {STATUS_CODE_MESSAGES.BROKER_LOGIN_SUCCESS_MESSAGE}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default Success;","import React, { useEffect, useState, useCallback } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from '@mui/material/Grid';\nimport Box from \"@mui/material/Box\";\nimport { useNavigate, useParams, useSearchParams } from \"react-router-dom\";\nimport { TITLES } from '../resources/constants';\nimport { Alerts } from 'sspart-fe-lib';\nimport { updateBrokerAuthData } from '../components/broker-login.page/api-calls';\nimport { getAuthenticationData } from '../components/broker-login.page/auth-helper';\nimport Success from '../components/broker-login.page/success';\n\ninterface BrokerAuthPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerAuthPage: React.FC<BrokerAuthPageProps> = ({ navigate }) => {\n\n const { id } = useParams();\n const [searchParams] = useSearchParams();\n\n const [success, setSuccess] = useState(false);\n\n const fetchBrokerAuth = useCallback(async () => {\n let body = getAuthenticationData(id ?? \"\", searchParams);\n let response = await updateBrokerAuthData(body);\n if (response) setSuccess(true);\n else setSuccess(false);\n }, [ id, searchParams ]);\n\n useEffect(() => {\n document.title = TITLES.BROKER_AUTH_PAGE_TITLE;\n fetchBrokerAuth();\n }, [fetchBrokerAuth]);\n\n return (\n <Container maxWidth=\"md\" sx={{ mt: 2, mb: 4 }}>\n <Grid>\n <h4 className=\"page-heading\">Broker authentication</h4>\n </Grid>\n <Box sx={{ my: 2 }} />\n <Grid>\n <Alerts id=\"broker-auth\" className=\"mt-2 mb-4\" />\n {success ? <Success origin={id ?? \"\"}/> : <div/>}\n </Grid>\n </Container>\n );\n};\n\nexport default BrokerAuthPage;"]}
1
+ {"version":3,"sources":["../../src/components/broker-login.page/auth-helper.tsx","../../src/components/broker-login.page/success.tsx","../../src/pages/broker-auth.page.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"broker-auth.page.js","sourcesContent":["import { SUPPORTED_BROKERS } from \"./constants\";\n\ninterface AuthenticationData {\n broker: string;\n data: Record<string, string | null>;\n}\n\nexport const getAuthenticationData = (\n origin: string,\n searchParams: URLSearchParams\n): AuthenticationData => {\n\n switch (origin) {\n case SUPPORTED_BROKERS.ANGEL_ONE:\n return {\n broker: SUPPORTED_BROKERS.ANGEL_ONE,\n data: {\n accessToken: searchParams.get(\"auth_token\") ?? \"\",\n feedToken: searchParams.get(\"feed_token\") ?? \"\",\n refreshToken: searchParams.get(\"refresh_token\") ?? \"\",\n },\n };\n case SUPPORTED_BROKERS.FYERS:\n return {\n broker: SUPPORTED_BROKERS.FYERS,\n data: {\n authCode: searchParams.get(\"auth_code\") ?? \"\",\n },\n };\n default:\n return {\n broker: origin,\n data: {},\n };\n }\n};","import React from \"react\";\nimport { BROKER_NAMES } from \"./constants\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\ninterface Props {\n origin: string;\n}\n\nconst Success: React.FC<Props> = ({ origin }) => {\n return (\n <div className=\"broker-auth-wrapper\">\n <div className=\"broker-auth-success\">\n <div className=\"text-center success\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"96\" width=\"96\" viewBox=\"0 0 48 48\">\n <path d=\"M21.05 33.1 35.2 18.95l-2.3-2.25-11.85 11.85-6-6-2.25 2.25ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 24q0-4.15 1.575-7.8 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24 4q4.15 0 7.8 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Z\"/>\n </svg>\n <div className=\"mt-4 broker-auth-success-message\">\n {BROKER_NAMES[origin] ?? \"Unknown Broker\"} authentication successful !!!\n </div>\n <div className=\"mt-4 broker-auth-sub-message\">\n {STATUS_CODE_MESSAGES.BROKER_LOGIN_SUCCESS_MESSAGE}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default Success;","import React, { useEffect, useState, useCallback } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from '@mui/material/Grid';\nimport Box from \"@mui/material/Box\";\nimport { useNavigate, useParams, useSearchParams } from \"react-router-dom\";\nimport { TITLES } from '../resources/constants';\nimport { Alerts } from 'sspart-fe-lib';\nimport { updateBrokerAuthData } from '../components/broker-login.page/api-calls';\nimport { getAuthenticationData } from '../components/broker-login.page/auth-helper';\nimport Success from '../components/broker-login.page/success';\nimport LoadingComp from \"../components/common/loading\";\n\ninterface BrokerAuthPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerAuthPage: React.FC<BrokerAuthPageProps> = ({ navigate }) => {\n\n const { id } = useParams();\n const [searchParams] = useSearchParams();\n\n const [success, setSuccess] = useState(false);\n\n const fetchBrokerAuth = useCallback(async () => {\n let body = getAuthenticationData(id ?? \"\", searchParams);\n let response = await updateBrokerAuthData(body);\n if (response) setSuccess(true);\n else setSuccess(false);\n }, [ id, searchParams ]);\n\n useEffect(() => {\n document.title = TITLES.BROKER_AUTH_PAGE_TITLE;\n fetchBrokerAuth();\n }, [fetchBrokerAuth]);\n\n return (\n <Container maxWidth=\"md\" sx={{ mt: 2, mb: 4 }}>\n <Grid>\n <h4 className=\"page-heading\">Broker authentication</h4>\n </Grid>\n <Box sx={{ my: 2 }} />\n <Grid>\n <Alerts id=\"broker-auth\" className=\"mt-2 mb-4\" />\n {success ? <Success origin={id ?? \"\"}/> : <LoadingComp />}\n </Grid>\n </Container>\n );\n};\n\nexport default BrokerAuthPage;"]}
@@ -1,15 +1,15 @@
1
- import { login_image_default } from '../chunk-4H3O2JGN.js';
1
+ import { login_image_default } from '../chunk-WZJE5VHZ.js';
2
2
  import { SUPPORTED_BROKERS } from '../chunk-QH4BPB2K.js';
3
- import { STATUS_CODE_MESSAGES } from '../chunk-IBJKEVYR.js';
4
- import { updateBrokerAuthData } from '../chunk-CN3GJW6R.js';
5
- import '../chunk-6B3NAL4F.js';
6
- import { TITLES } from '../chunk-PWBSF4OA.js';
7
- import { IMAGE_LINKS } from '../chunk-767TKJQF.js';
3
+ import { updateBrokerAuthData } from '../chunk-WBQ6B6D4.js';
4
+ import { STATUS_CODE_MESSAGES } from '../chunk-QE2XW565.js';
5
+ import '../chunk-QLPZ6FY2.js';
6
+ import { IMAGE_LINKS } from '../chunk-72Y4GEJL.js';
7
+ import { TITLES } from '../chunk-QYP3Y6HE.js';
8
8
  import { useEffect, useState } from 'react';
9
9
  import Container from '@mui/material/Container';
10
10
  import Grid2 from '@mui/material/Grid';
11
11
  import Card from '@mui/material/Card';
12
- import { showValidationAlert, ALERT_TYPES, clearValidationAlert, Alerts, alertService, Textbox, PasswordTextbox, Button } from 'sspart-fe-lib';
12
+ import { showValidationAlert, ALERT_TYPES, clearValidationAlert, Alerts, alertService, PasswordTextbox, Button } from 'sspart-fe-lib';
13
13
  import { jsx, jsxs } from 'react/jsx-runtime';
14
14
  import Box from '@mui/material/Box';
15
15
  import Typography from '@mui/material/Typography';
@@ -30,20 +30,14 @@ var IncorrectBroker = () => {
30
30
  var incorrect_broker_default = IncorrectBroker;
31
31
  var validateAngelOneSignIn = (data) => {
32
32
  const errors = {};
33
- if (!data.userid) {
34
- errors["userid"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_USERNAME;
35
- }
36
33
  if (!data.totp) {
37
34
  errors["totp"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_OTP;
38
35
  }
39
- if (!data.password) {
40
- errors["password"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_PASSWORD;
41
- }
42
36
  alertService.setData(errors);
43
37
  return Object.keys(errors).length === 0;
44
38
  };
45
39
  var AngelOne = () => {
46
- const [state, setState] = useState({ userid: "", password: "", totp: "" });
40
+ const [state, setState] = useState({ totp: "" });
47
41
  const [refresh, setRefresh] = useState(false);
48
42
  useEffect(() => {
49
43
  return () => {
@@ -62,15 +56,12 @@ var AngelOne = () => {
62
56
  alertService.resetData();
63
57
  const response = await updateBrokerAuthData({
64
58
  broker: SUPPORTED_BROKERS.ANGEL_ONE,
65
- userid: state.userid,
66
- totp: state.totp,
67
- password: state.password
59
+ totp: state.totp
68
60
  });
69
61
  if (response) {
70
62
  showValidationAlert(ALERT_TYPES.SUCCESS, STATUS_CODE_MESSAGES.BROKER_LOGIN_SUCCESS_MESSAGE, "broker-auth");
71
- setState({ userid: "", password: "", totp: "" });
63
+ setState({ totp: "" });
72
64
  } else {
73
- showValidationAlert(ALERT_TYPES.ERROR, STATUS_CODE_MESSAGES.INVALID_BROKER_SELECTED, "broker-auth");
74
65
  setRefresh(!refresh);
75
66
  }
76
67
  } else {
@@ -79,41 +70,12 @@ var AngelOne = () => {
79
70
  };
80
71
  const ads = alertService.getData();
81
72
  return /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 0, direction: "column", alignItems: "center", justifyContent: "center", children: [
82
- /* @__PURE__ */ jsx(login_image_default, { image: IMAGE_LINKS.ANGLE_ONE, title: "Angel One" }),
73
+ /* @__PURE__ */ jsx(login_image_default, { image: IMAGE_LINKS.ANGEL_ONE, title: "Angel One" }),
83
74
  /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(Typography, { variant: "caption", children: "This is DheQuest's Angel One login page" }) }) }),
84
75
  /* @__PURE__ */ jsxs(Box, { component: "form", onSubmit: onLoginClick, noValidate: true, sx: { m: 0, width: "100%" }, children: [
85
76
  /* @__PURE__ */ jsx(Box, { component: "div", sx: { my: 2 } }),
86
77
  /* @__PURE__ */ jsx(Alerts, { id: "broker-auth" }),
87
78
  /* @__PURE__ */ jsx(Box, { component: "div", sx: { my: 2 } }),
88
- /* @__PURE__ */ jsx(
89
- Textbox,
90
- {
91
- id: "userid",
92
- name: "userid",
93
- mandate: true,
94
- validation: ads.userid,
95
- type: "text",
96
- placeholder: "Username",
97
- size: "medium",
98
- value: state.userid,
99
- onChange
100
- }
101
- ),
102
- /* @__PURE__ */ jsx(Box, { component: "div", sx: { my: 2 } }),
103
- /* @__PURE__ */ jsx(
104
- PasswordTextbox,
105
- {
106
- id: "password",
107
- name: "password",
108
- mandate: true,
109
- validation: ads.password,
110
- placeholder: "MPIN",
111
- size: "medium",
112
- value: state.password,
113
- onChange
114
- }
115
- ),
116
- /* @__PURE__ */ jsx(Box, { component: "div", sx: { my: 2 } }),
117
79
  /* @__PURE__ */ jsx(
118
80
  PasswordTextbox,
119
81
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/broker-login.page/incorrect-broker.tsx","../../src/components/broker-login.page/business-rules.tsx","../../src/components/broker-login.page/angelone.tsx","../../src/components/broker-login.page/login-wrapper.tsx","../../src/pages/broker-login.page.tsx"],"names":["Grid","useEffect","alertService","showValidationAlert","ALERT_TYPES","jsxs","jsx","Alerts","Container"],"mappings":"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","file":"broker-login.page.js","sourcesContent":["import React, { useEffect } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from \"@mui/material/Grid\";\nimport { ALERT_TYPES, clearValidationAlert, showValidationAlert } from \"sspart-fe-lib\";\nimport { Alerts } from \"sspart-fe-lib\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\nconst IncorrectBroker: React.FC = () => {\n \n useEffect(() => {\n showValidationAlert(ALERT_TYPES.ERROR, STATUS_CODE_MESSAGES.INVALID_BROKER_SELECTED, 'broker-auth');\n return () => {\n clearValidationAlert(\"broker-auth\");\n };\n }, []);\n\n return (\n <Container maxWidth=\"sm\" sx={{ mt: 2, mb: 4 }}>\n <Grid sx={{ my: 2 }}>\n <h4 className=\"page-heading\">Broker login</h4>\n </Grid>\n <Alerts id=\"broker-auth\" />\n </Container>\n );\n};\n\nexport default IncorrectBroker;\n","import { alertService } from \"sspart-fe-lib\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\nexport interface AngelOneFormData {\n userid: string;\n totp: string;\n password: string;\n}\n\nexport const validateAngelOneSignIn = (data: AngelOneFormData): boolean => {\n const errors: Record<string, string> = {};\n\n if (!data.userid) {\n errors[\"userid\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_USERNAME;\n }\n\n if (!data.totp) {\n errors[\"totp\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_OTP;\n }\n\n if (!data.password) {\n errors[\"password\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_PASSWORD;\n }\n\n alertService.setData(errors);\n\n return Object.keys(errors).length === 0;\n};","import React, { useState, useEffect } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { SUPPORTED_BROKERS } from \"./constants\";\nimport { updateBrokerAuthData } from \"./api-calls\";\nimport { validateAngelOneSignIn } from \"./business-rules\";\nimport LoginImage from \"../common/login-image\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\nimport { ALERT_TYPES, Alerts, alertService, Button, \n PasswordTextbox, showValidationAlert, Textbox } from \"sspart-fe-lib\";\n\nconst AngelOne: React.FC = () => {\n\n const [state, setState] = useState({ userid: \"\", password: \"\", totp: \"\" });\n\n const [refresh, setRefresh] = useState<boolean>(false);\n\n useEffect(() => {\n return () => { alertService.resetData(); };\n }, []);\n\n const onChange = (name: string, value: string) => {\n setState((prevState) => ({\n ...prevState,\n [name]: value\n }));\n };\n\n const onLoginClick = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n if (validateAngelOneSignIn(state)) {\n alertService.resetData();\n const response = await updateBrokerAuthData({\n broker: SUPPORTED_BROKERS.ANGEL_ONE, userid: state.userid,\n totp: state.totp, password: state.password });\n if (response) {\n showValidationAlert(ALERT_TYPES.SUCCESS, STATUS_CODE_MESSAGES.BROKER_LOGIN_SUCCESS_MESSAGE, 'broker-auth');\n setState({ userid: \"\", password: \"\", totp: \"\" });\n } else {\n showValidationAlert(ALERT_TYPES.ERROR, STATUS_CODE_MESSAGES.INVALID_BROKER_SELECTED, 'broker-auth');\n setRefresh(!refresh);\n }\n } else {\n setRefresh(!refresh);\n }\n };\n\n const ads = alertService.getData();\n\n return (\n <Grid container spacing={0} direction=\"column\" alignItems=\"center\" justifyContent=\"center\">\n <LoginImage image={IMAGE_LINKS.ANGLE_ONE} title=\"Angel One\" />\n <Grid>\n <Grid>\n <Typography variant=\"caption\">\n This is DheQuest's Angel One login page\n </Typography>\n </Grid>\n </Grid>\n <Box component=\"form\" onSubmit={onLoginClick} noValidate sx={{ m: 0, width: \"100%\" }}>\n <Box component=\"div\" sx={{ my: 2 }} />\n <Alerts id=\"broker-auth\" />\n <Box component=\"div\" sx={{ my: 2 }} />\n <Textbox id=\"userid\" name=\"userid\" mandate validation={ads.userid} type=\"text\"\n placeholder=\"Username\" size=\"medium\" value={state.userid} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <PasswordTextbox id=\"password\" name=\"password\" mandate validation={ads.password} \n placeholder=\"MPIN\" size=\"medium\" value={state.password} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <PasswordTextbox id=\"totp\" name=\"totp\" mandate validation={ads.totp} \n placeholder=\"OTP\" size=\"medium\" value={state.totp} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <Button text=\"Sign In\" type=\"submit\" />\n </Box>\n </Grid>\n );\n};\n\nexport default AngelOne;\n","import React from \"react\";\nimport IncorrectBroker from \"./incorrect-broker\";\nimport AngelOne from \"./angelone\";\nimport { SUPPORTED_BROKERS } from \"./constants\";\n\ninterface LoginWrapperProps {\n origin: string;\n}\n\nconst LoginWrapper: React.FC<LoginWrapperProps> = ({ origin }) => {\n switch (origin) {\n case SUPPORTED_BROKERS.ANGEL_ONE:\n return <AngelOne />;\n default:\n return <IncorrectBroker />;\n }\n};\n\nexport default LoginWrapper;\n","import React, { useEffect } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\nimport LoginWrapper from \"../components/broker-login.page/login-wrapper\";\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { TITLES } from '../resources/constants';\n\ninterface BrokerAuthPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerLoginPage: React.FC<BrokerAuthPageProps> = ({ navigate }) => {\n\n const { id } = useParams();\n\n useEffect(() => {\n document.title = TITLES.BROKER_LOGIN_PAGE_TITLE;\n }, []);\n\n return (\n <Grid container spacing={0} justifyContent=\"center\" alignItems=\"center\" display=\"flex\" sx={{ minHeight: \"80dvh\" }}>\n <Container component=\"main\" maxWidth=\"xs\">\n <Card>\n <div className=\"sign-in-card-wrapper\">\n <LoginWrapper origin={id ?? \"\"}/>\n </div>\n </Card>\n </Container>\n </Grid>\n );\n};\n\nexport default BrokerLoginPage;"]}
1
+ {"version":3,"sources":["../../src/components/broker-login.page/incorrect-broker.tsx","../../src/components/broker-login.page/business-rules.tsx","../../src/components/broker-login.page/angelone.tsx","../../src/components/broker-login.page/login-wrapper.tsx","../../src/pages/broker-login.page.tsx"],"names":["Grid","useEffect","alertService","showValidationAlert","ALERT_TYPES","jsxs","jsx","Alerts","Container"],"mappings":"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","file":"broker-login.page.js","sourcesContent":["import React, { useEffect } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from \"@mui/material/Grid\";\nimport { ALERT_TYPES, clearValidationAlert, showValidationAlert } from \"sspart-fe-lib\";\nimport { Alerts } from \"sspart-fe-lib\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\nconst IncorrectBroker: React.FC = () => {\n \n useEffect(() => {\n showValidationAlert(ALERT_TYPES.ERROR, STATUS_CODE_MESSAGES.INVALID_BROKER_SELECTED, 'broker-auth');\n return () => {\n clearValidationAlert(\"broker-auth\");\n };\n }, []);\n\n return (\n <Container maxWidth=\"sm\" sx={{ mt: 2, mb: 4 }}>\n <Grid sx={{ my: 2 }}>\n <h4 className=\"page-heading\">Broker login</h4>\n </Grid>\n <Alerts id=\"broker-auth\" />\n </Container>\n );\n};\n\nexport default IncorrectBroker;\n","import { alertService } from \"sspart-fe-lib\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\n\nexport interface AngelOneFormData {\n totp: string;\n}\n\nexport const validateAngelOneSignIn = (data: AngelOneFormData): boolean => {\n const errors: Record<string, string> = {};\n\n if (!data.totp) {\n errors[\"totp\"] = STATUS_CODE_MESSAGES.PLEASE_ENTER_OTP;\n }\n\n alertService.setData(errors);\n\n return Object.keys(errors).length === 0;\n};","import React, { useState, useEffect, SubmitEventHandler } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { SUPPORTED_BROKERS } from \"./constants\";\nimport { updateBrokerAuthData } from \"./api-calls\";\nimport { validateAngelOneSignIn } from \"./business-rules\";\nimport LoginImage from \"../common/login-image\";\nimport { STATUS_CODE_MESSAGES } from \"../../resources/status\";\nimport { IMAGE_LINKS } from \"../../resources/images\";\nimport { ALERT_TYPES, Alerts, alertService, Button, \n PasswordTextbox, showValidationAlert } from \"sspart-fe-lib\";\n\nconst AngelOne: React.FC = () => {\n\n const [state, setState] = useState({ totp: \"\" });\n\n const [refresh, setRefresh] = useState<boolean>(false);\n\n useEffect(() => {\n return () => { alertService.resetData(); };\n }, []);\n\n const onChange = (name: string, value: string) => {\n setState((prevState) => ({\n ...prevState,\n [name]: value\n }));\n };\n\n const onLoginClick: SubmitEventHandler<HTMLElement> = async (event) => {\n event.preventDefault();\n if (validateAngelOneSignIn(state)) {\n alertService.resetData();\n const response = await updateBrokerAuthData({\n broker: SUPPORTED_BROKERS.ANGEL_ONE, totp: state.totp });\n if (response) {\n showValidationAlert(ALERT_TYPES.SUCCESS, STATUS_CODE_MESSAGES.BROKER_LOGIN_SUCCESS_MESSAGE, 'broker-auth');\n setState({ totp: \"\" });\n } else {\n setRefresh(!refresh);\n }\n } else {\n setRefresh(!refresh);\n }\n };\n\n const ads = alertService.getData();\n\n return (\n <Grid container spacing={0} direction=\"column\" alignItems=\"center\" justifyContent=\"center\">\n <LoginImage image={IMAGE_LINKS.ANGEL_ONE} title=\"Angel One\" />\n <Grid>\n <Grid>\n <Typography variant=\"caption\">\n This is DheQuest's Angel One login page\n </Typography>\n </Grid>\n </Grid>\n <Box component=\"form\" onSubmit={onLoginClick} noValidate sx={{ m: 0, width: \"100%\" }}>\n <Box component=\"div\" sx={{ my: 2 }} />\n <Alerts id=\"broker-auth\" />\n <Box component=\"div\" sx={{ my: 2 }} />\n <PasswordTextbox id=\"totp\" name=\"totp\" mandate validation={ads.totp} \n placeholder=\"OTP\" size=\"medium\" value={state.totp} onChange={onChange} />\n <Box component=\"div\" sx={{ my: 2 }} />\n <Button text=\"Sign In\" type=\"submit\" />\n </Box>\n </Grid>\n );\n};\n\nexport default AngelOne;\n","import React from \"react\";\nimport IncorrectBroker from \"./incorrect-broker\";\nimport AngelOne from \"./angelone\";\nimport { SUPPORTED_BROKERS } from \"./constants\";\n\ninterface LoginWrapperProps {\n origin: string;\n}\n\nconst LoginWrapper: React.FC<LoginWrapperProps> = ({ origin }) => {\n switch (origin) {\n case SUPPORTED_BROKERS.ANGEL_ONE:\n return <AngelOne />;\n default:\n return <IncorrectBroker />;\n }\n};\n\nexport default LoginWrapper;\n","import React, { useEffect } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\nimport LoginWrapper from \"../components/broker-login.page/login-wrapper\";\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { TITLES } from '../resources/constants';\n\ninterface BrokerAuthPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerLoginPage: React.FC<BrokerAuthPageProps> = ({ navigate }) => {\n\n const { id } = useParams();\n\n useEffect(() => {\n document.title = TITLES.BROKER_LOGIN_PAGE_TITLE;\n }, []);\n\n return (\n <Grid container spacing={0} justifyContent=\"center\" alignItems=\"center\" display=\"flex\" sx={{ minHeight: \"80dvh\" }}>\n <Container component=\"main\" maxWidth=\"xs\">\n <Card>\n <div className=\"sign-in-card-wrapper\">\n <LoginWrapper origin={id ?? \"\"}/>\n </div>\n </Card>\n </Container>\n </Grid>\n );\n};\n\nexport default BrokerLoginPage;"]}
@@ -1,47 +1,28 @@
1
- import { getSettings, logoutBroker } from '../chunk-CN3GJW6R.js';
2
- import '../chunk-6B3NAL4F.js';
3
- import { TITLES } from '../chunk-PWBSF4OA.js';
1
+ import { getSettings, deleteBrokerAccount, logoutBroker } from '../chunk-WBQ6B6D4.js';
2
+ import '../chunk-QE2XW565.js';
3
+ import { BROKERS_LOGIN_INFO, getUrl, SETTINGS_HELP_TEXT } from '../chunk-UPB7Z3GU.js';
4
+ import { loading_default } from '../chunk-3P3BZ5GA.js';
5
+ import '../chunk-QLPZ6FY2.js';
6
+ import '../chunk-72Y4GEJL.js';
7
+ import { TITLES } from '../chunk-QYP3Y6HE.js';
4
8
  import { useState, useCallback, useEffect, useMemo } from 'react';
5
9
  import Container from '@mui/material/Container';
6
10
  import Grid from '@mui/material/Grid';
7
11
  import Box from '@mui/material/Box';
8
- import { LinkButton, Alerts, getDateDifference, getCurrentDateWithoutTime, getDateWithoutTime, Tooltip, configService } from 'sspart-fe-lib';
12
+ import AddIcon from '@mui/icons-material/Add';
13
+ import { AreYouSureModal, LinkButton, Alerts, Button, getDateDifference, getCurrentDateWithoutTime, getDateWithoutTime, Tooltip, ns, NOTIFICATION_SERVICES } from 'sspart-fe-lib';
9
14
  import Card from '@mui/material/Card';
10
15
  import CardContent from '@mui/material/CardContent';
11
- import { jsxs, jsx } from 'react/jsx-runtime';
16
+ import IconButton from '@mui/material/IconButton';
17
+ import DeleteIcon from '@mui/icons-material/Delete';
18
+ import EditIcon from '@mui/icons-material/Edit';
19
+ import Stack from '@mui/material/Stack';
20
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
12
21
 
13
- var BROKERS_LOGIN = [
14
- {
15
- name: "Angel One",
16
- key: "AngelOne",
17
- external: false,
18
- img: "https://i.imgur.com/CIuVKGC.png"
19
- },
20
- {
21
- name: "Fyers",
22
- key: "Fyers",
23
- external: true,
24
- img: "https://i.imgur.com/anU1KVh.png",
25
- url: "FYERS"
26
- }
27
- ];
28
- var getUrl = (key) => {
29
- switch (key) {
30
- case "FYERS":
31
- const config = configService.getData();
32
- return config["API_FYERS_LOGIN_URL"];
33
- default:
34
- return "";
35
- }
36
- };
37
- var SETTINGS_HELP_TEXT = {
38
- broker_signin: "Login to your broker account, by clicking on the below tiles"
39
- };
40
22
  var BrokerSignIn = ({ brokerAuth, onCallBack, navigate }) => {
41
23
  const verifyLoggedIn = useCallback(
42
- (brokerKey) => {
43
- const loginDate = brokerAuth?.[brokerKey]?.loginDate ?? 0;
44
- return getDateDifference(getCurrentDateWithoutTime(), getDateWithoutTime(loginDate)) >= 0;
24
+ (login_date) => {
25
+ return getDateDifference(getCurrentDateWithoutTime(), getDateWithoutTime(login_date || 0)) >= 0;
45
26
  },
46
27
  [brokerAuth]
47
28
  );
@@ -59,27 +40,37 @@ var BrokerSignIn = ({ brokerAuth, onCallBack, navigate }) => {
59
40
  },
60
41
  [navigate]
61
42
  );
43
+ const onDelete = (data) => {
44
+ ns.postNotification(NOTIFICATION_SERVICES.CONFIRM_ACTION_MODAL, data);
45
+ };
62
46
  const brokerList = useMemo(() => {
63
- return BROKERS_LOGIN.map((broker) => {
64
- const isLoggedIn = verifyLoggedIn(broker.key);
47
+ if (brokerAuth.length === 0) {
48
+ return /* @__PURE__ */ jsx(Grid, { display: "flex", justifyContent: "center", alignItems: "center", sx: { mt: 2, mb: 4 }, children: /* @__PURE__ */ jsx("div", { className: "no-broker-accounts", children: "No broker accounts added yet." }) });
49
+ }
50
+ return brokerAuth.map((broker) => {
51
+ const isLoggedIn = verifyLoggedIn(broker.login_date);
52
+ const brokerInfo = BROKERS_LOGIN_INFO[broker.broker_name];
65
53
  return /* @__PURE__ */ jsxs(Grid, { size: { md: 3, sm: 4, xs: 6 }, display: "flex", flexDirection: "column", alignItems: "center", children: [
66
- broker.external ? /* @__PURE__ */ jsx("a", { href: getUrl(broker.url), className: `broker-login-tile text-center noselect ${isLoggedIn ? "disabled" : ""}`, children: /* @__PURE__ */ jsxs("div", { children: [
67
- /* @__PURE__ */ jsx("img", { className: "broker-login-logo", alt: "broker-logo", src: broker.img }),
68
- /* @__PURE__ */ jsx("div", { className: "broker-login-text", children: broker.name })
54
+ brokerInfo.external ? /* @__PURE__ */ jsx("a", { href: getUrl(brokerInfo.url), className: `broker-login-tile text-center noselect ${isLoggedIn ? "disabled" : ""}`, children: /* @__PURE__ */ jsxs("div", { children: [
55
+ /* @__PURE__ */ jsx("img", { className: "broker-login-logo", alt: "broker-logo", src: brokerInfo.img }),
56
+ /* @__PURE__ */ jsx("div", { className: "broker-login-text", children: broker.broker_name })
69
57
  ] }) }) : /* @__PURE__ */ jsx(
70
58
  LinkButton,
71
59
  {
72
- name: `broker/login/${broker.key}`,
60
+ name: `broker/login/${broker.broker_name}`,
73
61
  onClick,
74
62
  className: `broker-login-tile text-center noselect ${isLoggedIn ? "disabled" : ""}`,
75
63
  children: /* @__PURE__ */ jsxs("div", { children: [
76
- /* @__PURE__ */ jsx("img", { className: "broker-login-logo", alt: "broker-logo", src: broker.img }),
77
- /* @__PURE__ */ jsx("div", { className: "broker-login-text", children: broker.name })
64
+ /* @__PURE__ */ jsx("img", { className: "broker-login-logo", alt: "broker-logo", src: brokerInfo.img }),
65
+ /* @__PURE__ */ jsx("div", { className: "broker-login-text", children: broker.broker_name })
78
66
  ] })
79
67
  }
80
68
  ),
81
- isLoggedIn && /* @__PURE__ */ jsx("button", { name: broker.key, className: "broker-logout mt-4", onClick: onLogoutClick, children: "Logout" })
82
- ] }, broker.key);
69
+ isLoggedIn ? /* @__PURE__ */ jsx("button", { name: broker.broker_name, className: "broker-logout mt-4", onClick: onLogoutClick, children: "Logout" }) : /* @__PURE__ */ jsxs(Stack, { direction: "row", spacing: 1, paddingTop: 1, children: [
70
+ /* @__PURE__ */ jsx(IconButton, { onClick: () => onClick(`broker/account/${broker.broker_name}`), children: /* @__PURE__ */ jsx(EditIcon, { sx: { fontSize: 16 } }) }),
71
+ /* @__PURE__ */ jsx(IconButton, { onClick: () => onDelete(broker), children: /* @__PURE__ */ jsx(DeleteIcon, { sx: { fontSize: 16 } }) })
72
+ ] })
73
+ ] }, broker.broker_id);
83
74
  });
84
75
  }, [verifyLoggedIn, onClick, onLogoutClick]);
85
76
  return /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsxs(CardContent, { children: [
@@ -87,17 +78,19 @@ var BrokerSignIn = ({ brokerAuth, onCallBack, navigate }) => {
87
78
  /* @__PURE__ */ jsx("h4", { className: "page-heading text-center", children: "Broker(s) login" }),
88
79
  /* @__PURE__ */ jsx(Tooltip, { title: SETTINGS_HELP_TEXT.broker_signin, placement: "bottom" })
89
80
  ] }),
90
- /* @__PURE__ */ jsx(Grid, { container: true, spacing: 2, justifyContent: "center", sx: { textAlign: "center", pb: 2 }, children: brokerList })
81
+ /* @__PURE__ */ jsx(Grid, { container: true, spacing: 2, justifyContent: "center", sx: { textAlign: "center" }, children: brokerList })
91
82
  ] }) });
92
83
  };
93
84
  var brokers_default = BrokerSignIn;
94
85
  var BrokerSettingsPage = ({ navigate }) => {
86
+ const [loading, setLoading] = useState(true);
95
87
  const [settings, setSettings] = useState({
96
- brokerAuth: {}
88
+ brokerAuth: []
97
89
  });
98
90
  const fetchSettings = useCallback(async () => {
99
91
  const response = await getSettings();
100
92
  if (response) setSettings(response);
93
+ setLoading(false);
101
94
  }, []);
102
95
  useEffect(() => {
103
96
  document.title = TITLES.BROKER_SETTINGS_PAGE_TITLE;
@@ -106,7 +99,12 @@ var BrokerSettingsPage = ({ navigate }) => {
106
99
  const onClick = (name) => {
107
100
  if (name) navigate(`/${name}`);
108
101
  };
102
+ const onConfirm = async (data) => {
103
+ const response = await deleteBrokerAccount(data.account_id);
104
+ if (response) fetchSettings();
105
+ };
109
106
  return /* @__PURE__ */ jsxs(Container, { maxWidth: "md", sx: { mt: 2, mb: 4 }, children: [
107
+ /* @__PURE__ */ jsx(AreYouSureModal, { text: "Do you want to delete this broker account?", callback: onConfirm }),
110
108
  /* @__PURE__ */ jsxs(Grid, { children: [
111
109
  /* @__PURE__ */ jsx("h4", { className: "page-heading", children: "Broker Settings" }),
112
110
  /* @__PURE__ */ jsxs("div", { className: "broker-settings-help", children: [
@@ -115,10 +113,21 @@ var BrokerSettingsPage = ({ navigate }) => {
115
113
  " for help to login into broker(s)."
116
114
  ] })
117
115
  ] }),
116
+ /* @__PURE__ */ jsx(Alerts, { id: "settings", className: "mt-2 mb-4" }),
118
117
  /* @__PURE__ */ jsx(Box, { sx: { my: 2 } }),
119
- /* @__PURE__ */ jsxs(Grid, { children: [
120
- /* @__PURE__ */ jsx(Alerts, { id: "settings", className: "mt-2 mb-4" }),
121
- /* @__PURE__ */ jsx(brokers_default, { brokerAuth: settings.brokerAuth, navigate, onCallBack: fetchSettings })
118
+ loading ? /* @__PURE__ */ jsx(loading_default, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
119
+ /* @__PURE__ */ jsx(Grid, { children: /* @__PURE__ */ jsx(brokers_default, { brokerAuth: settings.brokerAuth, navigate, onCallBack: fetchSettings }) }),
120
+ /* @__PURE__ */ jsx(Box, { sx: { my: 4, display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx(
121
+ Button,
122
+ {
123
+ variant: "contained",
124
+ onClick: () => navigate("/brokers"),
125
+ sx: { mt: 4 },
126
+ className: "wrapped-btn",
127
+ startIcon: /* @__PURE__ */ jsx(AddIcon, {}),
128
+ text: "Add Broker"
129
+ }
130
+ ) })
122
131
  ] })
123
132
  ] });
124
133
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/broker-settings.page/constants.tsx","../../src/components/broker-settings.page/brokers.tsx","../../src/pages/broker-settings.page.tsx"],"names":["useCallback","jsxs","Grid","jsx","LinkButton"],"mappings":"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","file":"broker-settings.page.js","sourcesContent":["import { configService } from \"sspart-fe-lib\";\n\nexport const BROKERS_LOGIN = [\n {\n name: \"Angel One\",\n key: \"AngelOne\",\n external: false,\n img: \"https://i.imgur.com/CIuVKGC.png\"\n },{\n name: \"Fyers\",\n key: \"Fyers\",\n external: true,\n img: \"https://i.imgur.com/anU1KVh.png\",\n url: \"FYERS\"\n }\n]\n\nexport const getUrl = (key?: string) : string => {\n switch (key) {\n case \"FYERS\":\n const config = configService.getData();\n return config[\"API_FYERS_LOGIN_URL\"];\n default:\n return \"\";\n }\n}\n\nexport const SETTINGS_HELP_TEXT = {\n broker_signin: \"Login to your broker account, by clicking on the below tiles\"\n}","import React, { useCallback, useMemo } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport Grid from \"@mui/material/Grid\";\nimport { logoutBroker } from \"../broker-login.page/api-calls\";\nimport { getCurrentDateWithoutTime, getDateDifference, \n getDateWithoutTime, LinkButton, Tooltip } from \"sspart-fe-lib\";\nimport { BROKERS_LOGIN, getUrl, SETTINGS_HELP_TEXT } from \"./constants\";\n\ninterface BrokerSignInProps {\n brokerAuth: Record<string, { loginDate: number }>;\n onCallBack: () => void;\n navigate: ReturnType<typeof useNavigate>;\n}\n\ninterface Broker {\n key: string;\n name: string;\n img: string;\n url?: string;\n external?: boolean;\n}\n\nconst BrokerSignIn: React.FC<BrokerSignInProps> = ({ brokerAuth, onCallBack, navigate }) => {\n\n const verifyLoggedIn = useCallback(\n (brokerKey: string): boolean => {\n const loginDate = brokerAuth?.[brokerKey]?.loginDate ?? 0;\n return getDateDifference(getCurrentDateWithoutTime(), getDateWithoutTime(loginDate)) >= 0;\n },\n [brokerAuth]\n );\n\n const onLogoutClick = useCallback(\n async (event: React.MouseEvent<HTMLButtonElement>) => {\n const brokerKey = event.currentTarget.name;\n const response = await logoutBroker(brokerKey);\n if (response) onCallBack();\n },\n [onCallBack]\n );\n\n const onClick = useCallback(\n (name?: string) => {\n if (name) navigate(`/${name}`);\n },\n [navigate]\n );\n\n const brokerList = useMemo(() => {\n return BROKERS_LOGIN.map((broker: Broker) => {\n const isLoggedIn = verifyLoggedIn(broker.key);\n\n return (\n <Grid key={broker.key} size={{md:3, sm:4, xs: 6}} display='flex' flexDirection='column' alignItems='center'>\n {broker.external ? (\n <a href={getUrl(broker.url)} className={`broker-login-tile text-center noselect ${isLoggedIn ? \"disabled\" : \"\"}`}>\n <div>\n <img className=\"broker-login-logo\" alt=\"broker-logo\" src={broker.img} />\n <div className=\"broker-login-text\">{broker.name}</div>\n </div>\n </a>\n ) : (\n <LinkButton name={`broker/login/${broker.key}`} onClick={onClick}\n className={`broker-login-tile text-center noselect ${isLoggedIn ? \"disabled\" : \"\"}`} >\n <div>\n <img className=\"broker-login-logo\" alt=\"broker-logo\" src={broker.img} />\n <div className=\"broker-login-text\">{broker.name}</div>\n </div>\n </LinkButton>\n )}\n {isLoggedIn && (\n <button name={broker.key} className=\"broker-logout mt-4\" onClick={onLogoutClick}>\n Logout\n </button>\n )}\n </Grid>\n );\n });\n }, [verifyLoggedIn, onClick, onLogoutClick]);\n\n return (\n <Card>\n <CardContent>\n <Grid container direction=\"row\" alignItems=\"center\" justifyContent='center' sx={{ mb: 2 }}>\n <h4 className=\"page-heading text-center\">Broker(s) login</h4>\n <Tooltip title={SETTINGS_HELP_TEXT.broker_signin} placement=\"bottom\" />\n </Grid>\n <Grid container spacing={2} justifyContent=\"center\" sx={{ textAlign: \"center\", pb: 2 }}>\n {brokerList}\n </Grid>\n </CardContent>\n </Card>\n );\n};\n\nexport default BrokerSignIn;","import React, { useEffect, useState, useCallback } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Container from \"@mui/material/Container\";\nimport Grid from '@mui/material/Grid';\nimport Box from \"@mui/material/Box\";\nimport { TITLES } from '../resources/constants';\nimport { getSettings } from '../components/broker-login.page/api-calls';\nimport { Alerts, LinkButton } from 'sspart-fe-lib';\nimport BrokerSignIn from '../components/broker-settings.page/brokers';\n\ninterface BrokerSettingsPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerSettingsPage: React.FC<BrokerSettingsPageProps> = ({ navigate }) => {\n\n const [settings, setSettings] = useState({\n brokerAuth: {}\n });\n\n const fetchSettings = useCallback(async () => {\n const response = await getSettings();\n if (response) setSettings(response);\n }, []);\n\n useEffect(() => {\n document.title = TITLES.BROKER_SETTINGS_PAGE_TITLE;\n fetchSettings();\n }, [fetchSettings]);\n\n const onClick = (name?: string) => {\n if (name) navigate(`/${name}`);\n };\n\n return (\n <Container maxWidth=\"md\" sx={{ mt: 2, mb: 4 }}>\n <Grid>\n <h4 className=\"page-heading\">Broker Settings</h4>\n <div className=\"broker-settings-help\">\n Please click <LinkButton name=\"help\" text=\"here\" onClick={onClick} /> for help to login into broker(s).\n </div>\n </Grid>\n <Box sx={{ my: 2 }} />\n <Grid>\n <Alerts id=\"settings\" className=\"mt-2 mb-4\" />\n <BrokerSignIn brokerAuth={settings.brokerAuth} navigate={navigate} onCallBack={fetchSettings}/>\n </Grid>\n </Container>\n );\n};\n\nexport default BrokerSettingsPage;"]}
1
+ {"version":3,"sources":["../../src/components/broker-settings.page/brokers.tsx","../../src/pages/broker-settings.page.tsx"],"names":["useCallback","jsxs","jsx","Grid","LinkButton","Button"],"mappings":"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","file":"broker-settings.page.js","sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport Grid from \"@mui/material/Grid\";\nimport IconButton from '@mui/material/IconButton';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport EditIcon from '@mui/icons-material/Edit';\nimport Stack from '@mui/material/Stack';\nimport { logoutBroker } from \"../broker-login.page/api-calls\";\nimport { Button, getCurrentDateWithoutTime, getDateDifference, \n getDateWithoutTime, LinkButton, NOTIFICATION_SERVICES, ns, Tooltip } from \"sspart-fe-lib\";\nimport { BROKERS_LOGIN, BROKERS_LOGIN_INFO, getUrl, SETTINGS_HELP_TEXT } from \"./constants\";\n\ninterface BrokerAuthProps {\n broker_id: string;\n account_id: string;\n account_name: string;\n broker_userid: string;\n broker_name: string;\n login_date: Date;\n auth_metadata: any;\n}\n\ninterface BrokerSignInProps {\n brokerAuth: BrokerAuthProps[];\n onCallBack: () => void;\n navigate: ReturnType<typeof useNavigate>;\n}\n\ninterface Broker {\n key: string;\n name: string;\n img: string;\n url?: string;\n external?: boolean;\n}\n\nconst BrokerSignIn: React.FC<BrokerSignInProps> = ({ brokerAuth, onCallBack, navigate }) => {\n\n const verifyLoggedIn = useCallback(\n (login_date: Date): boolean => {\n return getDateDifference(getCurrentDateWithoutTime(), getDateWithoutTime(login_date || 0)) >= 0;\n },\n [brokerAuth]\n );\n\n const onLogoutClick = useCallback(\n async (event: React.MouseEvent<HTMLButtonElement>) => {\n const brokerKey = event.currentTarget.name;\n const response = await logoutBroker(brokerKey);\n if (response) onCallBack();\n },\n [onCallBack]\n );\n\n const onClick = useCallback(\n (name?: string) => {\n if (name) navigate(`/${name}`);\n },\n [navigate]\n );\n\n const onDelete = (data: BrokerAuthProps) => {\n ns.postNotification(NOTIFICATION_SERVICES.CONFIRM_ACTION_MODAL, data);\n };\n\n const brokerList = useMemo(() => {\n if(brokerAuth.length === 0) {\n return (\n <Grid display='flex' justifyContent='center' alignItems='center' sx={{ mt: 2, mb: 4 }}>\n <div className=\"no-broker-accounts\">No broker accounts added yet.</div>\n </Grid>\n );\n }\n return brokerAuth.map((broker: BrokerAuthProps) => {\n const isLoggedIn = verifyLoggedIn(broker.login_date);\n const brokerInfo = BROKERS_LOGIN_INFO[broker.broker_name];\n\n return (\n <Grid key={broker.broker_id} size={{md:3, sm:4, xs: 6}} display='flex' flexDirection='column' alignItems='center'>\n {brokerInfo.external ? (\n <a href={getUrl(brokerInfo.url)} className={`broker-login-tile text-center noselect ${isLoggedIn ? \"disabled\" : \"\"}`}>\n <div>\n <img className=\"broker-login-logo\" alt=\"broker-logo\" src={brokerInfo.img} />\n <div className=\"broker-login-text\">{broker.broker_name}</div>\n </div>\n </a>\n ) : (\n <LinkButton name={`broker/login/${broker.broker_name}`} onClick={onClick}\n className={`broker-login-tile text-center noselect ${isLoggedIn ? \"disabled\" : \"\"}`} >\n <div>\n <img className=\"broker-login-logo\" alt=\"broker-logo\" src={brokerInfo.img} />\n <div className=\"broker-login-text\">{broker.broker_name}</div>\n </div>\n </LinkButton>\n )}\n {isLoggedIn ? (\n <button name={broker.broker_name} className=\"broker-logout mt-4\" onClick={onLogoutClick}>\n Logout\n </button>\n ) : \n <Stack direction=\"row\" spacing={1} paddingTop={1}>\n <IconButton onClick={() => onClick(`broker/account/${broker.broker_name}`)}>\n <EditIcon sx={{ fontSize: 16 }} />\n </IconButton>\n <IconButton onClick={() => onDelete(broker)}>\n <DeleteIcon sx={{ fontSize: 16 }} />\n </IconButton>\n </Stack>\n }\n </Grid>\n );\n });\n }, [verifyLoggedIn, onClick, onLogoutClick]);\n\n return (\n <Card>\n <CardContent>\n <Grid container direction=\"row\" alignItems=\"center\" justifyContent='center' sx={{ mb: 2 }}>\n <h4 className=\"page-heading text-center\">Broker(s) login</h4>\n <Tooltip title={SETTINGS_HELP_TEXT.broker_signin} placement=\"bottom\" />\n </Grid>\n <Grid container spacing={2} justifyContent=\"center\" sx={{ textAlign: \"center\" }}>\n {brokerList}\n </Grid>\n </CardContent>\n </Card>\n );\n};\n\nexport default BrokerSignIn;","import React, { useEffect, useState, useCallback } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Container from \"@mui/material/Container\";\nimport Grid from '@mui/material/Grid';\nimport Box from \"@mui/material/Box\";\nimport AddIcon from '@mui/icons-material/Add';\nimport { TITLES } from '../resources/constants';\nimport { deleteBrokerAccount, getSettings } from '../components/broker-login.page/api-calls';\nimport { Alerts, AreYouSureModal, Button, LinkButton } from 'sspart-fe-lib';\nimport BrokerSignIn from '../components/broker-settings.page/brokers';\nimport LoadingComp from \"../components/common/loading\";\n\ninterface BrokerSettingsPageProps {\n navigate: ReturnType<typeof useNavigate>;\n}\n\nconst BrokerSettingsPage: React.FC<BrokerSettingsPageProps> = ({ navigate }) => {\n\n const [loading, setLoading] = useState(true);\n const [settings, setSettings] = useState({\n brokerAuth: []\n });\n\n const fetchSettings = useCallback(async () => {\n const response = await getSettings();\n if (response) setSettings(response);\n setLoading(false);\n }, []);\n\n useEffect(() => {\n document.title = TITLES.BROKER_SETTINGS_PAGE_TITLE;\n fetchSettings();\n }, [fetchSettings]);\n\n const onClick = (name?: string) => {\n if (name) navigate(`/${name}`);\n };\n\n const onConfirm = async (data: any) => {\n const response = await deleteBrokerAccount(data.account_id);\n if(response) fetchSettings();\n }\n\n return (\n <Container maxWidth=\"md\" sx={{ mt: 2, mb: 4 }}>\n <AreYouSureModal text=\"Do you want to delete this broker account?\" callback={onConfirm}/>\n <Grid>\n <h4 className=\"page-heading\">Broker Settings</h4>\n <div className=\"broker-settings-help\">\n Please click <LinkButton name=\"help\" text=\"here\" onClick={onClick} /> for help to login into broker(s).\n </div>\n </Grid>\n <Alerts id=\"settings\" className=\"mt-2 mb-4\" />\n <Box sx={{ my: 2 }} />\n {loading ? <LoadingComp /> : \n <>\n <Grid>\n <BrokerSignIn brokerAuth={settings.brokerAuth} navigate={navigate} onCallBack={fetchSettings}/>\n </Grid>\n <Box sx={{ my: 4, display: 'flex', justifyContent: 'center' }}>\n <Button variant=\"contained\" onClick={() => navigate('/brokers')} sx={{ mt: 4 }} \n className=\"wrapped-btn\" startIcon={<AddIcon />} text=\"Add Broker\"/>\n </Box>\n </>}\n </Container>\n );\n};\n\nexport default BrokerSettingsPage;"]}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { useNavigate } from 'react-router-dom';
3
+
4
+ interface BrokersPageProps {
5
+ navigate: ReturnType<typeof useNavigate>;
6
+ }
7
+ declare const BrokersPage: React.FC<BrokersPageProps>;
8
+
9
+ export { BrokersPage as default };
@@ -0,0 +1,75 @@
1
+ import { BROKERS_LOGIN_INFO } from '../chunk-UPB7Z3GU.js';
2
+ import { loading_default } from '../chunk-3P3BZ5GA.js';
3
+ import { CUSTOMER_ROUTES } from '../chunk-QLPZ6FY2.js';
4
+ import '../chunk-72Y4GEJL.js';
5
+ import { TITLES } from '../chunk-QYP3Y6HE.js';
6
+ import { useState, useCallback, useEffect } from 'react';
7
+ import Container from '@mui/material/Container';
8
+ import Grid from '@mui/material/Grid';
9
+ import Box from '@mui/material/Box';
10
+ import { LinkButton, Alerts, getcall } from 'sspart-fe-lib';
11
+ import Card from '@mui/material/Card';
12
+ import CardContent from '@mui/material/CardContent';
13
+ import { jsx, jsxs } from 'react/jsx-runtime';
14
+
15
+ var getBrokers = async () => {
16
+ return await getcall(CUSTOMER_ROUTES("brokers"), "brokers");
17
+ };
18
+ var BrokerSignIn = ({ broker, navigate }) => {
19
+ const onClick = (name) => {
20
+ if (name) navigate(`/${name}`);
21
+ };
22
+ const brokerInfo = BROKERS_LOGIN_INFO[broker.name];
23
+ return /* @__PURE__ */ jsx(Grid, { size: { md: 3, sm: 4, xs: 6 }, display: "flex", justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx(
24
+ LinkButton,
25
+ {
26
+ name: `broker/account/${brokerInfo.key}`,
27
+ onClick,
28
+ className: "broker-login-tile text-center noselect",
29
+ children: /* @__PURE__ */ jsxs("div", { children: [
30
+ /* @__PURE__ */ jsx("img", { className: "broker-login-logo", alt: "broker-logo", src: brokerInfo.img }),
31
+ /* @__PURE__ */ jsx("div", { className: "broker-login-text", children: brokerInfo.name })
32
+ ] })
33
+ }
34
+ ) });
35
+ };
36
+ var brokers_default = BrokerSignIn;
37
+ var BrokerWrapper = ({ brokers, navigate }) => {
38
+ return /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx(Grid, { container: true, spacing: 2, children: brokers.map((broker) => /* @__PURE__ */ jsx(brokers_default, { broker, navigate }, broker.id)) }) }) });
39
+ };
40
+ var broker_wrapper_default = BrokerWrapper;
41
+ var BrokersPage = ({ navigate }) => {
42
+ const [loading, setLoading] = useState(true);
43
+ const [brokers, setBrokers] = useState([]);
44
+ const fetchBrokers = useCallback(async () => {
45
+ const response = await getBrokers();
46
+ if (response) setBrokers(response.brokers || []);
47
+ setLoading(false);
48
+ }, []);
49
+ useEffect(() => {
50
+ document.title = TITLES.BROKERS_PAGE_TITLE;
51
+ fetchBrokers();
52
+ }, [fetchBrokers]);
53
+ const onClick = (name) => {
54
+ if (name) navigate(`/${name}`);
55
+ };
56
+ if (loading) return /* @__PURE__ */ jsx(loading_default, {});
57
+ return /* @__PURE__ */ jsxs(Container, { maxWidth: "md", sx: { mt: 2, mb: 4 }, children: [
58
+ /* @__PURE__ */ jsxs(Grid, { children: [
59
+ /* @__PURE__ */ jsx("h4", { className: "page-heading", children: "Select Brokers" }),
60
+ /* @__PURE__ */ jsxs("div", { className: "broker-settings-help", children: [
61
+ "Please click ",
62
+ /* @__PURE__ */ jsx(LinkButton, { name: "help", text: "here", onClick }),
63
+ " for help to login into broker(s)."
64
+ ] })
65
+ ] }),
66
+ /* @__PURE__ */ jsx(Alerts, { id: "brokers", className: "mt-2 mb-4" }),
67
+ /* @__PURE__ */ jsx(Box, { sx: { my: 2 } }),
68
+ loading ? /* @__PURE__ */ jsx(loading_default, {}) : /* @__PURE__ */ jsx(broker_wrapper_default, { brokers, navigate })
69
+ ] });
70
+ };
71
+ var brokers_page_default = BrokersPage;
72
+
73
+ export { brokers_page_default as default };
74
+ //# sourceMappingURL=brokers.page.js.map
75
+ //# sourceMappingURL=brokers.page.js.map