import { z } from 'zod' export const recentGroupsSchema = z.array( z.object({ id: z.string().min(1), name: z.string(), }), ) export type RecentGroups = z.infer export type RecentGroup = RecentGroups[number] const STORAGE_KEY = 'recentGroups' export function getRecentGroups() { const groupsInStorageJson = localStorage.getItem(STORAGE_KEY) const groupsInStorageRaw = groupsInStorageJson ? JSON.parse(groupsInStorageJson) : [] const parseResult = recentGroupsSchema.safeParse(groupsInStorageRaw) return parseResult.success ? parseResult.data : [] } export function saveRecentGroup(group: RecentGroup) { const recentGroups = getRecentGroups() localStorage.setItem( STORAGE_KEY, JSON.stringify([group, ...recentGroups.filter((rg) => rg.id !== group.id)]), ) }