feat: massive layout refactor, redirect when cookie is not set

This commit is contained in:
EETagent 2022-12-03 14:14:26 +01:00
parent 546a0047c0
commit 4040fa8bcb
19 changed files with 41 additions and 20 deletions

View file

@ -1,6 +1,6 @@
import axios, { type AxiosProgressEvent } from 'axios';
import type { CandidateData, CandidateLogin } from 'src/stores/candidate';
import type { SubmissionProgress } from 'src/stores/portfolio';
import type { CandidateData, CandidateLogin } from '$lib/stores/candidate';
import type { SubmissionProgress } from '$lib/stores/portfolio';
import { API_URL, errorHandler } from '.';
export async function apiWhoami(): Promise<string> {

View file

@ -1,7 +1,7 @@
<script lang="ts">
import type { AxiosProgressEvent } from "axios";
import { fetchSubmProgress } from "../../../stores/portfolio";
import { apiUploadCoverLetter } from "../../../@api/candidate";
import { fetchSubmProgress } from "$lib/stores/portfolio";
import { apiUploadCoverLetter } from "$lib/@api/candidate";
import DashboardUploadCard from "./DashboardUploadCard.svelte";
const onFileDrop = async (file: File) => {

View file

@ -1,7 +1,7 @@
<script lang="ts">
import FileType from './FileType.svelte';
import FileDrop from 'filedrop-svelte';
import { submissionProgress, UploadStatus, type Status } from '../../../stores/portfolio';
import { submissionProgress, UploadStatus, type Status } from '$lib/stores/portfolio';
import { createEventDispatcher } from 'svelte';
import StatusNotification from './StatusNotification.svelte';

View file

@ -1,7 +1,7 @@
<script lang="ts">
import type { AxiosProgressEvent } from "axios";
import { fetchSubmProgress } from "../../../stores/portfolio";
import { apiUploadPortfolioLetter } from "../../../@api/candidate";
import { fetchSubmProgress } from "$lib/stores/portfolio";
import { apiUploadPortfolioLetter } from "../../@api/candidate";
import DashboardUploadCard from "./DashboardUploadCard.svelte";
const onFileDrop = async (file: File) => {

View file

@ -1,7 +1,7 @@
<script lang="ts">
import type { AxiosProgressEvent } from "axios";
import { fetchSubmProgress } from "../../../stores/portfolio";
import { apiUploadPortfolioZip } from "../../../@api/candidate";
import { fetchSubmProgress } from "$lib/stores/portfolio";
import { apiUploadPortfolioZip } from "$lib/@api/candidate";
import DashboardUploadCard from "./DashboardUploadCard.svelte";
const onFileDrop = async (file: File) => {

View file

@ -1,5 +1,5 @@
<script lang="ts">
import type { Status } from "../../../stores/portfolio";
import type { Status } from "$lib/stores/portfolio";
export let status: Status;

View file

@ -0,0 +1,10 @@
import type { LayoutServerLoad } from './$types';
import { redirect } from '@sveltejs/kit';
export const load: LayoutServerLoad = ({ cookies }) => {
const isAuthenticated = cookies.get('id');
if (!isAuthenticated) {
throw redirect(302, '/admin/auth/login');
}
};

View file

@ -0,0 +1,10 @@
import type { LayoutServerLoad } from './$types';
import { redirect } from '@sveltejs/kit';
export const load: LayoutServerLoad = ({ cookies }) => {
const isAuthenticated = cookies.get('id');
if (!isAuthenticated) {
throw redirect(302, '/login');
}
};

View file

@ -6,11 +6,11 @@
import DashboardUploadCard from '$lib/components/dashboard/DashboardUploadCard.svelte';
import DashboardInfoCard from '$lib/components/dashboard/DashboardInfoCard.svelte';
import { candidateData, fetchDetails } from '../../stores/candidate';
import { candidateData, fetchDetails } from '$lib/stores/candidate';
import CoverLetterUploadCard from '$lib/components/dashboard/CoverLetterUploadCard.svelte';
import PortfolioLetterUploadCard from '$lib/components/dashboard/PortfolioLetterUploadCard.svelte';
import PortfolioZipUploadCard from '$lib/components/dashboard/PortfolioZipUploadCard.svelte';
import { fetchSubmProgress } from '../../stores/portfolio';
import { fetchSubmProgress } from '$lib/stores/portfolio';
let fullName = "";

View file

@ -10,7 +10,7 @@
import IdField from '$lib/components/textfield/IdField.svelte';
import TelephoneField from '$lib/components/textfield/TelephoneField.svelte';
import TextField from '$lib/components/textfield/TextField.svelte';
import { fillDetails, candidateData, type CandidateData } from '../../stores/candidate';
import { fillDetails, candidateData, type CandidateData } from '$lib/stores/candidate';
import { createForm } from 'svelte-forms-lib';
import * as yup from 'yup';

View file

@ -4,7 +4,7 @@
import woman from '$lib/assets/woman.png';
import { onMount } from 'svelte';
import { page } from '$app/stores';
import { login } from '../../../stores/candidate';
import { login } from '$lib/stores/candidate';
import { goto } from '$app/navigation';

View file

@ -1,6 +0,0 @@
/** @type {import('./$types').PageLoad} */
export const load = async ({ url }) => {
return {
url: url.pathname
};
};

View file

@ -0,0 +1,7 @@
import type { LayoutLoad } from './$types';
export const load: LayoutLoad = async ({ url }) => {
return {
url: url.pathname
};
};