From 19c53fde0123ffce16039663c126592486e3044a Mon Sep 17 00:00:00 2001 From: de-salman Date: Sat, 14 Sep 2024 01:04:38 +0530 Subject: [PATCH] reset data button when data saved in localstorage --- src/app/lib/redux/local-storage.ts | 15 ++++++++++++++- src/app/lib/redux/resumeSlice.ts | 2 ++ src/app/resume-import/page.tsx | 26 +++++++++++++++++++++++--- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/app/lib/redux/local-storage.ts b/src/app/lib/redux/local-storage.ts index d365e4d..0b0c671 100644 --- a/src/app/lib/redux/local-storage.ts +++ b/src/app/lib/redux/local-storage.ts @@ -1,4 +1,5 @@ -import type { RootState } from "lib/redux/store"; +import { store, type RootState } from "lib/redux/store"; +import { resetResume } from "./resumeSlice"; // Reference: https://dev.to/igorovic/simplest-way-to-persist-redux-state-to-localstorage-e67 @@ -23,4 +24,16 @@ export const saveStateToLocalStorage = (state: RootState) => { } }; +export const clearLocalStorage = () => { + try { + localStorage.removeItem(LOCAL_STORAGE_KEY); + console.log(localStorage.getItem(LOCAL_STORAGE_KEY),"sss"); + + store.dispatch(resetResume()); + + } catch (e) { + // Ignore + } +}; + export const getHasUsedAppBefore = () => Boolean(loadStateFromLocalStorage()); diff --git a/src/app/lib/redux/resumeSlice.ts b/src/app/lib/redux/resumeSlice.ts index 2e2ca37..4cd4b98 100644 --- a/src/app/lib/redux/resumeSlice.ts +++ b/src/app/lib/redux/resumeSlice.ts @@ -197,6 +197,7 @@ export const resumeSlice = createSlice({ setResume: (draft, action: PayloadAction) => { return action.payload; }, + resetResume: () => initialResumeState, }, }); @@ -211,6 +212,7 @@ export const { moveSectionInForm, deleteSectionInFormByIdx, setResume, + resetResume, } = resumeSlice.actions; export const selectResume = (state: RootState) => state.resume; diff --git a/src/app/resume-import/page.tsx b/src/app/resume-import/page.tsx index 251f7df..e151c9a 100644 --- a/src/app/resume-import/page.tsx +++ b/src/app/resume-import/page.tsx @@ -1,5 +1,5 @@ "use client"; -import { getHasUsedAppBefore } from "lib/redux/local-storage"; +import { clearLocalStorage, getHasUsedAppBefore } from "lib/redux/local-storage"; import { ResumeDropzone } from "components/ResumeDropzone"; import { useState, useEffect } from "react"; import Link from "next/link"; @@ -15,6 +15,11 @@ export default function ImportResume() { setHasUsedAppBefore(getHasUsedAppBefore()); }, []); + const handleCreateFromScratch = () => { + clearLocalStorage(); + setHasAddedResume(false); + }; + return (
@@ -44,6 +49,8 @@ export default function ImportResume() { @@ -73,20 +80,33 @@ const OrDivider = () => ( const SectionWithHeadingAndCreateButton = ({ heading, buttonText, + secondaryButtonText, + onCreateFromScratch, }: { heading: string; buttonText: string; + secondaryButtonText?: string; + onCreateFromScratch?: () => void; }) => { return ( <>

{heading}

-
+
{buttonText} + {secondaryButtonText && ( + + {secondaryButtonText} + + )}
);