Working on Datagrid interaction

This commit is contained in:
2025-12-08 22:39:26 +01:00
parent 045f01b48a
commit b26abc4257
6 changed files with 36 additions and 17 deletions

View File

@@ -111,10 +111,10 @@ class TabsManager(MultipleInstance):
if tab_id not in self._state.tabs:
return Div("Tab not found.")
tab_config = self._state.tabs[tab_id]
if tab_config["component_type"] is None:
if tab_config["component"] is None:
return Div("Tab content does not support serialization.")
try:
return InstancesManager.get(self._session, tab_config["component_id"])
return InstancesManager.get(self._session, tab_config["component"][1])
except Exception as e:
logger.error(f"Error while retrieving tab content: {e}")
return Div("Failed to retrieve tab content.")
@@ -384,8 +384,7 @@ class TabsManager(MultipleInstance):
if component_id is not None:
for tab_id, tab_data in self._state.tabs.items():
if (tab_data.get('component_type') == component_type and
tab_data.get('component_id') == component_id and
if (tab_data.get('component') == (component_type, component_id) and
tab_data.get('label') == label):
return tab_id
@@ -399,16 +398,21 @@ class TabsManager(MultipleInstance):
# Extract component ID if the component has a get_id() method
component_type, component_id = None, None
parent_type, parent_id = None, None
if isinstance(component, BaseInstance):
component_type = component.get_prefix()
component_id = component.get_id()
parent = component.get_parent()
if parent:
parent_type = parent.get_prefix()
parent_id = parent.get_id()
# Add tab metadata to state
state.tabs[tab_id] = {
'id': tab_id,
'label': label,
'component_type': component_type,
'component_id': component_id
'component': (component_type, component_id) if component_type else None,
'component_parent': (parent_type, parent_id) if parent_type else None
}
# Add tab to order list