123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import { foldersActions, IFolder } from '../../../stores/reducers/folders/slice';
- import { useState } from 'react';
- import { useAppDispatch } from '../../../stores/store';
- import { nanoid } from 'nanoid';
- import { pagesActions } from '../../../stores/reducers/pages/slice';
- import { ViewLayoutTypePB } from '../../../../services/backend';
- export const useFolderEvents = (folder: IFolder) => {
- const appDispatch = useAppDispatch();
- const [showPages, setShowPages] = useState(false);
- const [showFolderOptions, setShowFolderOptions] = useState(false);
- const [showNewPageOptions, setShowNewPageOptions] = useState(false);
- const [showRenamePopup, setShowRenamePopup] = useState(false);
- const onFolderNameClick = () => {
- setShowPages(!showPages);
- };
- const onFolderOptionsClick = () => {
- setShowFolderOptions(!showFolderOptions);
- };
- const onNewPageClick = () => {
- setShowNewPageOptions(!showNewPageOptions);
- };
- const startFolderRename = () => {
- closePopup();
- setShowRenamePopup(true);
- };
- const changeFolderTitle = (newTitle: string) => {
- appDispatch(foldersActions.renameFolder({ id: folder.id, newTitle }));
- };
- const closeRenamePopup = () => {
- setShowRenamePopup(false);
- };
- const deleteFolder = () => {
- closePopup();
- appDispatch(foldersActions.deleteFolder({ id: folder.id }));
- };
- const duplicateFolder = () => {
- closePopup();
- appDispatch(foldersActions.addFolder({ id: nanoid(8), title: folder.title }));
- };
- const closePopup = () => {
- setShowFolderOptions(false);
- setShowNewPageOptions(false);
- };
- const onAddNewDocumentPage = () => {
- closePopup();
- appDispatch(
- pagesActions.addPage({
- folderId: folder.id,
- pageType: ViewLayoutTypePB.Document,
- title: 'New Page 1',
- id: nanoid(6),
- })
- );
- };
- const onAddNewBoardPage = () => {
- closePopup();
- appDispatch(
- pagesActions.addPage({
- folderId: folder.id,
- pageType: ViewLayoutTypePB.Board,
- title: 'New Board 1',
- id: nanoid(6),
- })
- );
- };
- const onAddNewGridPage = () => {
- closePopup();
- appDispatch(
- pagesActions.addPage({ folderId: folder.id, pageType: ViewLayoutTypePB.Grid, title: 'New Grid 1', id: nanoid(6) })
- );
- };
- return {
- showPages,
- onFolderNameClick,
- showFolderOptions,
- onFolderOptionsClick,
- showNewPageOptions,
- onNewPageClick,
- showRenamePopup,
- startFolderRename,
- changeFolderTitle,
- closeRenamePopup,
- deleteFolder,
- duplicateFolder,
- onAddNewDocumentPage,
- onAddNewBoardPage,
- onAddNewGridPage,
- closePopup,
- };
- };
|