/*
    작성자 : 조대원
    작성일 : 2025-02-27
    수정자 :
    수정일 :
    설명   : 용어집 작성, 수정 공통관리
*/
import { ref } from 'vue';
import { defineStore } from 'pinia';

export const useWriteVisibleStore = defineStore('writeVisible', () => {
    // 현재 열려있는 항목의 ID를 저장 (열린 것이 없으면 null)
    const activeItemId = ref(null);

    // 특정 항목의 열림/닫힘 상태 확인
    function isItemActive(itemId) {
        return activeItemId.value === itemId;
    }

    // 항목 토글 - 현재 열려있으면 닫고, 닫혀있으면 열기
    function toggleItem(itemId) {
        if (activeItemId.value === itemId) {
            // 현재 열려있는 항목을 다시 클릭하면 닫기
            activeItemId.value = null;
        } else {
            // 다른 항목 클릭시 해당 항목을 열고 이전 항목은 자동으로 닫힘
            activeItemId.value = itemId;
        }
    }

    // 특정 항목 강제로 열기 (다른 항목은 닫힘)
    function setActiveItem(itemId) {
        activeItemId.value = itemId;
    }

    // 모든 항목 닫기
    function closeAll() {
        activeItemId.value = null;
    }

    return { 
        activeItemId, 
        isItemActive, 
        toggleItem, 
        setActiveItem, 
        closeAll 
    };
});