Source code for flask_uio.message
from .segment import Segment
from .prop import ValidProp
from .element import Element
from .icon import Icon
[docs]class Message(Element):
"""Message widget
Args:
message (string): message's text
opt_css_class (string, optional): option fomantic ui css class. Defaults to None.
desc (string, optional): message's description. Defaults to None.
icon (Icon, optional): message's icon. Defaults to None.
spacing (bool, optional): enable vertical spacing between elements. Defaults to False.
hideable (bool, optional): auto hide message (10s). Defaults to True.
More Info:
- See https://fomantic-ui.com/collections/message.html
"""
message = ValidProp(str)
desc = ValidProp(str)
opt_css_class = ValidProp(str)
spacing = ValidProp(bool)
icon = ValidProp(Icon)
def __init__(self, message, opt_css_class=None, desc=None, icon=None, spacing=False, hideable=True):
super().__init__('div')
self.message = message
self.opt_css_class = ' ' + opt_css_class if opt_css_class else ''
self.icon = icon
if icon:
self.opt_css_class += ' icon'
self.desc = desc
self.spacing = spacing
self.css_class = 'hideable' if hideable else ''
msg_box = Element('div', _class=f'ui{self.opt_css_class} message')
if self.icon:
msg_box.append(self.icon)
msg_content = Element('div', _class='content')
msg_content.append(Element('div', _class='header', inner_text=self.message))
if self.desc:
msg_content.append(Element('p', inner_text=self.desc))
msg_box.append(msg_content)
if self.spacing:
segment = Segment(msg_box, _class='ui horizontally fitted basic segment')
self.append(segment)
else:
self.append(msg_box)