Module: PageComponent

Defined in:
lib/glimmer/web/component/page_component.rb

Class Method Summary collapse

Class Method Details

.last_visible_page_componentsObject



11
12
13
14
15
16
# File 'lib/glimmer/web/component/page_component.rb', line 11

def last_visible_page_components
  unless defined?(@@last_visible_page_components)
    @@last_visible_page_components = []
  end
  @@last_visible_page_components
end

.page_url_to_component_mappingObject



4
5
6
7
8
9
# File 'lib/glimmer/web/component/page_component.rb', line 4

def page_url_to_component_mapping
  unless defined?(@@page_url_to_component_mapping)
    @@page_url_to_component_mapping = {}
  end
  @@page_url_to_component_mapping
end

.register_page_component_history_listenerObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/glimmer/web/component/page_component.rb', line 18

def register_page_component_history_listener
  unless defined?(@@registered_page_component_history_listener)
    @@registered_page_component_history_listener = true
    $$.addEventListener('popstate') do |event|
      page_component = PageComponent.page_url_to_component_mapping[$$.document.location.href]
      if page_component
        visible_page_component = PageComponent.last_visible_page_components.pop
        visible_page_component.markup_root.hide
        page_component.markup_root.show
        PageComponent.last_visible_page_components.push(page_component)
      end
    end
  end
end