managarten/memoro/apps/mobile/features/memos/hooks/useModalState.ts
Till-JS e7f5f942f3 chore: initial commit - consolidate 4 projects into monorepo
Projects included:
- maerchenzauber (NestJS backend + Expo mobile + SvelteKit web + Astro landing)
- manacore (Expo mobile + SvelteKit web + Astro landing)
- manadeck (NestJS backend + Expo mobile + SvelteKit web)
- memoro (Expo mobile + SvelteKit web + Astro landing)

This commit preserves the current state before monorepo restructuring.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:38:24 +01:00

51 lines
No EOL
1.6 KiB
TypeScript

import { useState } from 'react';
interface ModalState {
isSpaceSelectorVisible: boolean;
isShareModalVisible: boolean;
isReplaceWordModalVisible: boolean;
isSpeakerLabelModalVisible: boolean;
isTagSelectorVisible: boolean;
}
interface ModalActions {
setSpaceSelectorVisible: (visible: boolean) => void;
setIsShareModalVisible: (visible: boolean) => void;
setIsReplaceWordModalVisible: (visible: boolean) => void;
setIsSpeakerLabelModalVisible: (visible: boolean) => void;
setIsTagSelectorVisible: (visible: boolean) => void;
closeAllModals: () => void;
}
export function useModalState(): ModalState & ModalActions {
const [isSpaceSelectorVisible, setSpaceSelectorVisible] = useState(false);
const [isShareModalVisible, setIsShareModalVisible] = useState(false);
const [isReplaceWordModalVisible, setIsReplaceWordModalVisible] = useState(false);
const [isSpeakerLabelModalVisible, setIsSpeakerLabelModalVisible] = useState(false);
const [isTagSelectorVisible, setIsTagSelectorVisible] = useState(false);
const closeAllModals = () => {
setSpaceSelectorVisible(false);
setIsShareModalVisible(false);
setIsReplaceWordModalVisible(false);
setIsSpeakerLabelModalVisible(false);
setIsTagSelectorVisible(false);
};
return {
// State
isSpaceSelectorVisible,
isShareModalVisible,
isReplaceWordModalVisible,
isSpeakerLabelModalVisible,
isTagSelectorVisible,
// Actions
setSpaceSelectorVisible,
setIsShareModalVisible,
setIsReplaceWordModalVisible,
setIsSpeakerLabelModalVisible,
setIsTagSelectorVisible,
closeAllModals,
};
}