timetable-app

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

useNote.ts (617B)


      1 import { useLocalStorage } from 'usehooks-ts';
      2 
      3 import formatDate from 'common/utils/formatDate';
      4 
      5 import type { GradeClass, SchoolTime } from 'common/types';
      6 
      7 const getStorageKey = (gradeClass: string, date: Date, period: SchoolTime) => {
      8 	const dateString = formatDate(date);
      9 	return `note_data_${gradeClass}_${dateString}_${period}`;
     10 };
     11 
     12 type Params = {
     13 	gradeClass: GradeClass | null;
     14 	date: Date;
     15 	period: SchoolTime;
     16 };
     17 
     18 const useNote = ({ gradeClass, date, period }: Params) => {
     19 	const key = getStorageKey(gradeClass ?? '', date, period);
     20 	return useLocalStorage<string>(key, '');
     21 };
     22 
     23 export default useNote;