Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions ui/src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import GeneralSettings from './views/generalSettings/GeneralSettings';
import JobMutation from './views/jobs/mutation/JobMutation';
import UserMutator from './views/user/mutation/UserMutator';
import { useActions, useSelector } from './services/state/store';
import { Routes, Route, Navigate } from 'react-router-dom';
import { Routes, Route, Navigate, useLocation } from 'react-router-dom';
import Login from './views/login/Login';
import Users from './views/user/Users';
import Jobs from './views/jobs/Jobs';
Expand Down Expand Up @@ -42,6 +42,7 @@ for (const [path, mod] of Object.entries(semiLocaleModules)) {
}

export default function FredyApp() {
const location = useLocation();
const actions = useActions();
const [loading, setLoading] = React.useState(true);
const currentUser = useSelector((state) => state.user.currentUser);
Expand Down Expand Up @@ -85,7 +86,7 @@ export default function FredyApp() {
{needsLogin() ? (
<Routes>
<Route path="/login" element={<Login />} />
<Route path="*" element={<Navigate to="/login" replace />} />
<Route path="*" element={<Navigate state={{ from: location }} to="/login" replace />} />
</Routes>
) : (
<Layout className="app">
Expand Down
5 changes: 3 additions & 2 deletions ui/src/views/login/Login.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import React, { useEffect } from 'react';
import cityBackground from '../../assets/city_background.jpg';
import Logo from '../../components/logo/Logo';
import { xhrPost } from '../../services/xhr';
import { useNavigate } from 'react-router-dom';
import { useLocation, useNavigate } from 'react-router-dom';
import { useActions, useSelector } from '../../services/state/store';
import { Input, Button, Banner } from '@douyinfe/semi-ui-19';

Expand All @@ -24,6 +24,7 @@ export default function Login() {
const [error, setError] = React.useState(null);
const demoMode = useSelector((state) => state.demoMode.demoMode || false);
const navigate = useNavigate();
const location = useLocation();

useEffect(() => {
async function init() {
Expand Down Expand Up @@ -52,7 +53,7 @@ export default function Login() {
}

await actions.user.getCurrentUser();
navigate('/dashboard');
navigate(location.state?.from?.pathname || '/dashboard');
};

return (
Expand Down
Loading