# -*- coding: utf-8 -*-

from riot.app import quit_app, run_tag
from riot.tags.style import parse_style
from riot.tags.tags import parse_tag_from_node
from riot.tags.utils import convert_string_to_node
from riot.virtual_dom import define_tag, mount

sig = define_tag('sig', '''
<sig>
  <filler valign="top">
    <pile>
      <edit caption="What is your name?" class="highlight" id="ask" onchange="{ answer }" />
      <div div_char='-' />
      <text if="{ name }" class="x">Nice to meet you, </text>
      <text><span class="highlight">{ name }</span></text>
      <div />
      <button id="exit" label="Exit" onclick="{ exit }" />
    </pile>
  </filler>
  <script>
  import urwid

  def init(self, opts):
      import urwid
      self.name = opts['name']

  def answer(self, edit, text):
      self.name = text
  </script>
</sig>
''')

style = '''
.highlight {
  foreground: default,bold;
  background: default;
  mono: bold;
}
'''

root = convert_string_to_node('<sig></sig>')

mount(root, 'sig', 'sig', {'name': 'Default'})

app = parse_tag_from_node(root)

run_tag(app, parse_style(style))
