25 lines
1012 B
Python
25 lines
1012 B
Python
from nicegui import ui
|
|
from components import AsyncElement
|
|
from living_agents import Character
|
|
|
|
|
|
class CharacterCard(AsyncElement):
|
|
character: Character
|
|
|
|
async def build(self, character: Character) -> None:
|
|
self.character = character
|
|
|
|
with self.element:
|
|
with ui.row().classes('items-center gap-1'):
|
|
ui.icon('person', size='sm').classes('text-purple-500')
|
|
with ui.column().classes('gap-1'):
|
|
ui.label().bind_text_from(self.character, 'name').classes('font-semibold')
|
|
ui.label(f'{self.character.occupation}, {self.character.age}').classes('text-xs text-gray-500')
|
|
with ui.row().classes('gap-1 mt-1'):
|
|
ui.badge('📚 10 memories', color='purple').classes('text-xs')
|
|
ui.badge('💭 0 reflections', color='indigo').classes('text-xs')
|
|
|
|
async def _select_character(self):
|
|
await self._select_character_callback(self.character)
|
|
print(self.character)
|