custom_view.py 978 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import justpy as jp
  2. class CustomView(jp.JustpyBaseComponent):
  3. vue_dependencies = []
  4. def __init__(self, **options):
  5. self.pages = {}
  6. self.classes = ''
  7. self.options = jp.Dict(**options)
  8. super().__init__()
  9. self.initialize(temp=False)
  10. def add_page(self, wp: jp.WebPage):
  11. marker = '<!--' + self.__module__ + '-->\n'
  12. if marker not in wp.head_html:
  13. wp.head_html += marker
  14. for dependency in self.vue_dependencies:
  15. wp.head_html += f'<script src="{dependency}"></script>\n'
  16. if self.vue_filepath not in jp.component_file_list:
  17. jp.component_file_list += ['file?path=' + self.vue_filepath]
  18. super().add_page(wp)
  19. def react(self, _):
  20. pass
  21. def convert_object_to_dict(self):
  22. return {
  23. 'vue_type': self.vue_type,
  24. 'id': self.id,
  25. 'show': True,
  26. 'options': self.options,
  27. }