55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
侧边栏状态
|
|
"""
|
|
import reflex as rx
|
|
|
|
from application.states.task import TaskState
|
|
|
|
|
|
class SidebarState(rx.State):
|
|
"""
|
|
侧边栏状态
|
|
"""
|
|
|
|
# 选中的导航按钮,默认为创建任务
|
|
nav_button: str = "create_task"
|
|
|
|
# 退出登录确认打开状态
|
|
is_logout_confirm_open: bool = False
|
|
|
|
@rx.event
|
|
async def set_nav_button(self, nav_button: str):
|
|
"""
|
|
将指定导航按钮设置为选中的导航按钮
|
|
"""
|
|
self.nav_button = nav_button
|
|
|
|
# 若选中创建任务导航按钮则将空设置为当前任务唯一标识
|
|
if nav_button == "create_task":
|
|
# 获取任务状态
|
|
task_state = await self.get_state(TaskState)
|
|
# 将空设置为当前任务唯一标识
|
|
task_state.set_task_id("")
|
|
|
|
@rx.event
|
|
async def set_task_id(self, task_id: str):
|
|
"""
|
|
将指定任务的唯一标识设置为当前选中任务的唯一标识
|
|
"""
|
|
self.nav_button = ""
|
|
|
|
# 获取任务状态
|
|
task_state = await self.get_state(TaskState)
|
|
# 将指定任务唯一标识设置为当前任务唯一标识
|
|
task_state.set_task_id(task_id)
|
|
|
|
@rx.event
|
|
def toggle_logout_confirm_open(self, is_open: bool) -> None:
|
|
"""
|
|
切换退出登录确认打开状态
|
|
:param is_open: 退出登录确认打开状态
|
|
:return: None
|
|
"""
|
|
self.is_logout_confirm_open = is_open
|