44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
|
|
import { defineStore } from 'pinia'
|
||
|
|
import { ref } from 'vue'
|
||
|
|
|
||
|
|
// 전역 UI 상태 (로그인/회원가입 레이어 팝업 등)
|
||
|
|
export const useUiStore = defineStore('ui', () => {
|
||
|
|
const loginOpen = ref(false)
|
||
|
|
const signupOpen = ref(false)
|
||
|
|
const redirectPath = ref('')
|
||
|
|
|
||
|
|
// 모바일 사이드바 드로어
|
||
|
|
const sidebarOpen = ref(false)
|
||
|
|
function toggleSidebar() {
|
||
|
|
sidebarOpen.value = !sidebarOpen.value
|
||
|
|
}
|
||
|
|
function closeSidebar() {
|
||
|
|
sidebarOpen.value = false
|
||
|
|
}
|
||
|
|
|
||
|
|
// 로그인 팝업 (회원가입 팝업은 닫고 전환)
|
||
|
|
function openLogin(redirect = '') {
|
||
|
|
redirectPath.value = redirect || ''
|
||
|
|
signupOpen.value = false
|
||
|
|
loginOpen.value = true
|
||
|
|
}
|
||
|
|
function closeLogin() {
|
||
|
|
loginOpen.value = false
|
||
|
|
redirectPath.value = ''
|
||
|
|
}
|
||
|
|
|
||
|
|
// 회원가입 팝업 (로그인 팝업은 닫고 전환)
|
||
|
|
function openSignup() {
|
||
|
|
loginOpen.value = false
|
||
|
|
signupOpen.value = true
|
||
|
|
}
|
||
|
|
function closeSignup() {
|
||
|
|
signupOpen.value = false
|
||
|
|
}
|
||
|
|
|
||
|
|
return {
|
||
|
|
loginOpen, signupOpen, redirectPath, openLogin, closeLogin, openSignup, closeSignup,
|
||
|
|
sidebarOpen, toggleSidebar, closeSidebar,
|
||
|
|
}
|
||
|
|
})
|