34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
"""Event-log screen with honest handling of the current snapshot contract gap."""
|
||
|
||
from __future__ import annotations
|
||
|
||
from typing import Any, Optional
|
||
|
||
import customtkinter as ctk
|
||
|
||
from antigravity_provider.router.state_store import HubSnapshot
|
||
from antigravity_provider.router.ui.components import EmptyState, SectionHeader
|
||
from antigravity_provider.router.ui.theme import Theme
|
||
|
||
|
||
class LogsView(ctk.CTkFrame):
|
||
def __init__(self, master: Any, **kwargs):
|
||
super().__init__(master=master, fg_color="transparent", **kwargs)
|
||
SectionHeader(
|
||
self,
|
||
title="Журнал событий",
|
||
subtitle="Только события, переданные через единый snapshot-контракт",
|
||
).pack(fill="x", padx=Theme.PAGE_PAD_X, pady=(Theme.PAGE_PAD_Y, Theme.SPACE_SM))
|
||
self.empty = EmptyState(
|
||
self,
|
||
title="Журнал: Н/Д",
|
||
message=(
|
||
"HubSnapshot пока не содержит события журнала. Экран не читает файлы и backend "
|
||
"напрямую и не показывает выдуманную историю."
|
||
),
|
||
)
|
||
self.empty.pack(fill="x", padx=Theme.PAGE_PAD_X, pady=Theme.SPACE_XL)
|
||
|
||
def update_data(self, snapshot: Optional[HubSnapshot] = None) -> None:
|
||
if not isinstance(snapshot, HubSnapshot):
|
||
return
|