Added DbObjects

This commit is contained in:
2025-11-10 23:12:07 +01:00
parent d302261d07
commit c641f3fd63
10 changed files with 189 additions and 14 deletions

View File

@@ -13,7 +13,8 @@ from myfasthtml.controls.BaseCommands import BaseCommands
from myfasthtml.controls.UserProfile import UserProfile
from myfasthtml.controls.helpers import mk, Ids
from myfasthtml.core.commands import Command
from myfasthtml.core.instances import MultipleInstance, InstancesManager
from myfasthtml.core.dbmanager import DbObject
from myfasthtml.core.instances import InstancesManager, SingleInstance
from myfasthtml.icons.fluent import panel_left_expand20_regular as left_drawer_icon
from myfasthtml.icons.fluent_p2 import panel_right_expand20_regular as right_drawer_icon
@@ -21,7 +22,10 @@ logger = logging.getLogger("LayoutControl")
@dataclass
class LayoutState:
class LayoutState(DbObject):
def __init__(self, session, owner):
super().__init__(session, owner.get_id())
left_drawer_open: bool = True
right_drawer_open: bool = False
@@ -31,7 +35,7 @@ class Commands(BaseCommands):
return Command("ToggleDrawer", "Toggle main layout drawer", self._owner.toggle_drawer, "left")
class Layout(MultipleInstance):
class Layout(SingleInstance):
"""
A responsive layout component with header, footer, main content area,
and optional collapsible side drawers.
@@ -70,7 +74,7 @@ class Layout(MultipleInstance):
self._header_content = None
self._footer_content = None
self._main_content = None
self._state = LayoutState()
self._state = LayoutState(session, self)
self.commands = Commands(self)
self.left_drawer = self.DrawerContent(self, "left")
self.right_drawer = self.DrawerContent(self, "right")