| @@ -3,6 +3,9 @@ import * as React from "react"; | |||||
| import * as HttpUtils from "utils/HttpUtils"; | import * as HttpUtils from "utils/HttpUtils"; | ||||
| import * as UrlUtils from "utils/ApiPathConst"; | import * as UrlUtils from "utils/ApiPathConst"; | ||||
| import { useNavigate } from "react-router-dom"; | import { useNavigate } from "react-router-dom"; | ||||
| import { useDispatch } from "react-redux"; | |||||
| import { handleLogoutFunction, handleLogin } from 'auth/index'; | |||||
| import Loadable from 'components/Loadable'; | import Loadable from 'components/Loadable'; | ||||
| const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | ||||
| @@ -11,6 +14,7 @@ const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/Loa | |||||
| const Index = () => { | const Index = () => { | ||||
| const dispatch = useDispatch() | |||||
| const navigate = useNavigate() | const navigate = useNavigate() | ||||
| React.useEffect(() => { | React.useEffect(() => { | ||||
| @@ -18,6 +22,8 @@ const Index = () => { | |||||
| }, []); | }, []); | ||||
| function getPrfile(){ | function getPrfile(){ | ||||
| dispatch(handleLogoutFunction()); | |||||
| let params = new URLSearchParams(window.location.search) | let params = new URLSearchParams(window.location.search) | ||||
| if(params.get("code")){ | if(params.get("code")){ | ||||
| HttpUtils.post({ | HttpUtils.post({ | ||||
| @@ -26,15 +32,38 @@ const Index = () => { | |||||
| code: params.get("code") | code: params.get("code") | ||||
| }, | }, | ||||
| onSuccess: (responseData) => { | onSuccess: (responseData) => { | ||||
| navigate('/iAmSmartRegisterFrom', { state: { responseData: responseData } }); | |||||
| //navigate('/iAmSmartRegisterFrom', { state: { responseData: responseData } }); | |||||
| console.log(response) | |||||
| const userData = { | |||||
| id: responseData.id, | |||||
| fullenName: responseData.name, | |||||
| fullchName: responseData.chName, | |||||
| email: responseData.email, | |||||
| type: responseData.type, | |||||
| role: responseData.role, | |||||
| abilities: responseData.abilities, | |||||
| creditor: responseData.creditor, | |||||
| //avatar: require('src/assets/images/users/avatar-3.png').default, | |||||
| } | |||||
| const data = { ...userData, accessToken: responseData.accessToken, refreshToken: responseData.refreshToken } | |||||
| // setSuccess(true) | |||||
| dispatch(handleLogin(data)) | |||||
| navigate('/dashboard'); | |||||
| location.reload() | |||||
| }, | |||||
| onFail: ()=>{ | |||||
| window.location.assign("/iamsmart/loginFall"); | |||||
| }, | |||||
| onError:()=>{ | |||||
| window.location.assign("/iamsmart/loginFall"); | |||||
| } | } | ||||
| }); | }); | ||||
| } | } | ||||
| } | } | ||||
| return ( | return ( | ||||
| <LoadingComponent /> | <LoadingComponent /> | ||||
| ); | ); | ||||
| @@ -2,28 +2,20 @@ | |||||
| import { | import { | ||||
| Grid, | Grid, | ||||
| Typography, | Typography, | ||||
| Stack, | |||||
| Button | |||||
| } from '@mui/material'; | } from '@mui/material'; | ||||
| import * as React from "react"; | import * as React from "react"; | ||||
| import { useNavigate } from "react-router-dom"; | |||||
| import Loadable from 'components/Loadable'; | import Loadable from 'components/Loadable'; | ||||
| const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | ||||
| import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | |||||
| const BackgroundHead = { | |||||
| backgroundImage: `url(${titleBackgroundImg})`, | |||||
| width: '100%', | |||||
| height: '100%', | |||||
| backgroundSize: 'contain', | |||||
| backgroundRepeat: 'no-repeat', | |||||
| backgroundColor: '#0C489E', | |||||
| backgroundPosition: 'right' | |||||
| } | |||||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
| const Index = () => { | const Index = () => { | ||||
| const navigate = useNavigate() | |||||
| const [onReady, setOnReady] = React.useState(false); | const [onReady, setOnReady] = React.useState(false); | ||||
| React.useEffect(() => { | React.useEffect(() => { | ||||
| @@ -34,31 +26,32 @@ const Index = () => { | |||||
| !onReady ? | !onReady ? | ||||
| <LoadingComponent /> | <LoadingComponent /> | ||||
| : | : | ||||
| <Grid container sx={{ minHeight: '110vh', backgroundColor: '#fff' }} direction="column" justifyContent="flex-start" alignItems="center" > | |||||
| <Grid item xs={12} width="100%"> | |||||
| <div style={BackgroundHead} width="100%"> | |||||
| <Stack direction="row" height='70px'> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>iAmSmart 登入失敗</Typography> | |||||
| </Stack> | |||||
| </div> | |||||
| </Grid> | |||||
| {/*row 1*/} | |||||
| <Grid item xs={12} md={12} > | |||||
| <Grid container justifyContent="flex-start" alignItems="center" > | |||||
| <center> | |||||
| <Grid item xs={12} md={12} > | |||||
| <Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}> | |||||
| 連接 iAM Smart 時出現錯誤,請重試。 | |||||
| </Typography> | |||||
| </Grid> | |||||
| </center> | |||||
| <Grid container sx={{ height: '100%', backgroundColor: '#fff' }} direction="column" justifyContent="flex-start" alignItems="center" > | |||||
| <Grid item xs={12} md={12} > | |||||
| <Grid container justifyContent="flex-start" alignItems="center" > | |||||
| <center> | |||||
| <Grid item xs={12} md={12} > | |||||
| <Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}> | |||||
| 登入失敗,請重試。 | |||||
| </Typography> | |||||
| <Button | |||||
| component="span" | |||||
| variant="contained" | |||||
| size="large" | |||||
| sx={{ m: 4 }} | |||||
| onClick={() => { | |||||
| navigate("/login"); | |||||
| }} | |||||
| >返回登入</Button> | |||||
| </Grid> | |||||
| </center> | |||||
| </Grid> | |||||
| </Grid> | </Grid> | ||||
| </Grid> | |||||
| {/*row 2*/} | |||||
| </Grid > | |||||
| {/*row 2*/} | |||||
| </Grid > | |||||
| ); | ); | ||||
| }; | }; | ||||
| @@ -64,11 +64,11 @@ const LoginRoutes = { | |||||
| element: <IAmSmart_RegistryCallback/> | element: <IAmSmart_RegistryCallback/> | ||||
| }, | }, | ||||
| { | { | ||||
| path: 'iamsmart/loginfallback', | |||||
| path: 'iamsmart/loginFall', | |||||
| element: <IAmSmart_FailCallback/> | element: <IAmSmart_FailCallback/> | ||||
| }, | }, | ||||
| { | { | ||||
| path: 'iamsmart/logincallback', | |||||
| path: 'iamsmart/loginSucess', | |||||
| element: <IAmSmart_SuccessCallback/> | element: <IAmSmart_SuccessCallback/> | ||||
| }, | }, | ||||
| { | { | ||||