Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 4x 4x 5x 4x 4x 13x | /**
* Partner Detail Store
* Story 2.8.2: Partner Detail View - Task 3b
*
* Manages Partner Detail screen UI state including:
* - Active tab index (0=Overview, 1=Contacts, 2=Meetings, 3=Activity, 4=Notes, 5=Settings)
* - Edit modal visibility
* - Note modal visibility
*
* AC3: Tab Navigation state management
*/
import { create } from 'zustand';
interface PartnerDetailState {
activeTab: number;
showEditModal: boolean;
showNoteModal: boolean;
}
interface PartnerDetailActions {
setActiveTab: (tab: number) => void;
setShowEditModal: (show: boolean) => void;
setShowNoteModal: (show: boolean) => void;
reset: () => void;
}
type PartnerDetailStore = PartnerDetailState & PartnerDetailActions;
const initialState: PartnerDetailState = {
activeTab: 0, // Default to Overview tab
showEditModal: false,
showNoteModal: false,
};
/**
* usePartnerDetailStore - Zustand store for Partner Detail screen UI state
*
* State:
* - activeTab: Current active tab index (0-5)
* - showEditModal: Edit partner modal visibility
* - showNoteModal: Add/edit note modal visibility
*
* Actions:
* - setActiveTab: Update active tab index
* - setShowEditModal: Toggle edit modal
* - setShowNoteModal: Toggle note modal
* - reset: Reset to initial state
*/
export const usePartnerDetailStore = create<PartnerDetailStore>()((set) => ({
...initialState,
setActiveTab: (activeTab) => set(() => ({ activeTab })),
setShowEditModal: (showEditModal) => set(() => ({ showEditModal })),
setShowNoteModal: (showNoteModal) => set(() => ({ showNoteModal })),
reset: () => set(() => ({ ...initialState })),
}));
|