"use client"; import { createNewLeaflet } from "actions/createNewLeaflet"; import { createNewLeafletFromTemplate } from "actions/createNewLeafletFromTemplate"; import { ActionButton } from "components/ActionBar/ActionButton"; import { AddTiny } from "components/Icons/AddTiny"; import { BlockCanvasPageSmall } from "components/Icons/BlockCanvasPageSmall"; import { BlockDocPageSmall } from "components/Icons/BlockDocPageSmall"; import { TemplateSmall } from "components/Icons/TemplateSmall"; import { Menu, MenuItem } from "components/Layout"; import { useIsMobile } from "src/hooks/isMobile"; import { create } from "zustand"; import { combine, createJSONStorage, persist } from "zustand/middleware"; export const useTemplateState = create( persist( combine( { templates: [] as { id: string; name: string }[], }, (set) => ({ removeTemplate: (template: { id: string }) => set((state) => { return { templates: state.templates.filter((t) => t.id !== template.id), }; }), addTemplate: (template: { id: string; name: string }) => set((state) => { if (state.templates.find((t) => t.id === template.id)) return state; return { templates: [...state.templates, template] }; }), }), ), { name: "home-templates", storage: createJSONStorage(() => localStorage), }, ), ); export const CreateNewLeafletButton = (props: {}) => { let isMobile = useIsMobile(); let templates = useTemplateState((s) => s.templates); let openNewLeaflet = (id: string) => { if (isMobile) { window.location.href = `/${id}?focusFirstBlock`; } else { window.open(`/${id}?focusFirstBlock`, "_blank"); } }; return (
label="New" /> } > {templates.length > 0 && (