mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-16 12:59:39 +02:00
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>
51 lines
No EOL
1.6 KiB
TypeScript
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,
|
|
};
|
|
} |