feat(auth): Added authentication
This commit is contained in:
parent
d85d4334f8
commit
5e100c75ed
39 changed files with 704 additions and 86 deletions
|
|
@ -3,35 +3,51 @@ import { getServerList, type Server } from "../../Lib/Servers";
|
|||
import ServerSearch from "../../Components/ServerSearch/ServerSearch";
|
||||
import { useNavigate, useSearchParams } from "react-router-dom";
|
||||
import { Spinner } from "react-bootstrap";
|
||||
import Cookies from "js-cookie";
|
||||
|
||||
|
||||
const Search = () => {
|
||||
const [searchParams] = useSearchParams();
|
||||
const [servers, setServers] = useState<Array<Server>>([]);
|
||||
const navigate = useNavigate();
|
||||
const sessionCookie = Cookies.get("session");
|
||||
|
||||
const searchTerm = searchParams.get("search") || "";
|
||||
|
||||
useEffect(() => {
|
||||
if (!sessionCookie) {
|
||||
navigate("/login");
|
||||
return;
|
||||
}
|
||||
|
||||
if (searchTerm === "") {
|
||||
alert(`Error search term missing: ${searchTerm}`);
|
||||
navigate("/");
|
||||
}
|
||||
|
||||
if (servers.length > 0) {
|
||||
// eslint-disable-next-line react-hooks/set-state-in-effect
|
||||
setServers([]);
|
||||
}
|
||||
|
||||
getServerList().then(servers => {
|
||||
if (servers.length === 0) {
|
||||
alert("No servers found");
|
||||
}
|
||||
setServers(servers);
|
||||
|
||||
const workingServers: Array<Server> = [];
|
||||
|
||||
servers.forEach(s => {
|
||||
if (!s.errored) {
|
||||
workingServers.push(s);
|
||||
}
|
||||
})
|
||||
|
||||
if (workingServers.length === 0) {
|
||||
alert("No working servers");
|
||||
navigate("/");
|
||||
}
|
||||
|
||||
setServers(workingServers);
|
||||
}).catch(e => {
|
||||
alert(e);
|
||||
});
|
||||
}, [searchTerm]);
|
||||
}, [searchTerm, navigate]);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue