Source code for abacura.widgets.footer

"""
Various footer widget bits
"""

from textual.reactive import reactive
from textual.widgets import Footer

from abacura.mud.options.msdp import MSDPMessage
from abacura.plugins import Plugin
from abacura.plugins.events import event

# TODO this should probably be a specific implementation in abacura-kallisti
[docs]class AbacuraFooter(Footer): """Bottom of screen bar with current session name""" session: reactive[str | None] = reactive[str | None]("null") level: reactive[str] = reactive[str]("")
[docs] def on_mount(self): self.screen.session.event_manager.listener(self.update_level)
[docs] def render(self) -> str: return f"#{self.session} {self.level}"
[docs] @event("msdp_value_LEVEL", priority=5) def update_level(self, message: MSDPMessage): """Update reactive values for level""" self.level = f"Level: {message.value}"