clearwater-virtual_list 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68d27d1bbb1ff51020345231f89f4641283907e3048ada732e782e463852e9dd
4
- data.tar.gz: 2c52e47b00fb5f6e7d27436d55a26a782c25d06f4f8210f46faf4b9ba8e2c317
3
+ metadata.gz: 181c657da5f2cc21642c209c65fbb9adef3c59f1d9aa3efee0c1feb0944812af
4
+ data.tar.gz: b7052b02283c239c3b1d935a8f44b849ba0e67fbcaa86fe1d199152bf65f855d
5
5
  SHA512:
6
- metadata.gz: 19bceb7ec575d27215ce8ad53f218b5955d3998fbc69d538eed64077a7f11af3f32b874483034e6d3b3790f031751133a7a8b25c057f3da61605f7fc5b30c8b6
7
- data.tar.gz: dd4098f5d5e97004c2fc3159bdb1e5cf21cc2d701909b59a8f5c1d6fdfa13c1ef88dbb871240601c3fc7668def0f506397c28023d3ac3346c12806dd6b9381c7
6
+ metadata.gz: c1c8e04b1b4f9e7980ddaafc15abbba16dafa006b1a16e2463ebbe7ebe0e76b3f86df427697e7dea1da73f5f448e3c05a9384a0523a3a83a4a61b33f1ef3b0c8
7
+ data.tar.gz: 7d07b6bc44ffb048e2fdf1cc7712acc38ccb2fdfc609648c7089f35d21e1c50bd3c97f120aeb313e1652ba34a5f61ababac15c153e69c86a576f95988b10f870
@@ -1,5 +1,5 @@
1
1
  module Clearwater
2
2
  module VirtualList
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
@@ -1,4 +1,3 @@
1
- require 'clearwater/virtual_dom'
2
1
  require 'clearwater/black_box_node'
3
2
  require 'bowser'
4
3
 
@@ -28,9 +27,10 @@ module Clearwater
28
27
  class Component
29
28
  include Clearwater::BlackBoxNode
30
29
 
31
- attr_reader :items, :height, :first, :last
30
+ attr_reader :items, :height
32
31
  attr_reader :onscroll, :onresize
33
- attr_reader :vdom
32
+ attr_reader :app
33
+ attr_accessor :first, :last
34
34
 
35
35
  def initialize(items, item_height:)
36
36
  @items = items
@@ -38,7 +38,11 @@ module Clearwater
38
38
  end
39
39
 
40
40
  def mount element
41
- @vdom = Clearwater::VirtualDOM::Document.new(element)
41
+ @app = Clearwater::Application.new(
42
+ component: Container.new(self),
43
+ router: NullRouter.new,
44
+ element: element,
45
+ )
42
46
  @onscroll = Bowser.window.on(:scroll) { render_content element }
43
47
  @onresize = Bowser.window.on(:resize) { render_content element }
44
48
 
@@ -46,7 +50,8 @@ module Clearwater
46
50
  end
47
51
 
48
52
  def update previous, element
49
- @vdom = previous.vdom
53
+ @app = previous.app
54
+ @app.component.list = self
50
55
  @onscroll = previous.onscroll
51
56
  @onresize = previous.onresize
52
57
 
@@ -63,8 +68,9 @@ module Clearwater
63
68
  end
64
69
 
65
70
  def render_content(element)
66
- @first, @last = visible_item_bounds(element)
67
- vdom.render Clearwater::Component.sanitize_content(content)
71
+ app.component.list.first, app.component.list.last = app.component.list.visible_item_bounds(element)
72
+
73
+ app.perform_render
68
74
  end
69
75
 
70
76
  def visible_item_bounds(element)
@@ -96,6 +102,28 @@ module Clearwater
96
102
  def total_height
97
103
  height * items.count
98
104
  end
105
+
106
+ class Container
107
+ include Clearwater::Component
108
+
109
+ attr_accessor :list
110
+
111
+ def initialize list
112
+ @list = list
113
+ end
114
+
115
+ def render
116
+ list.content
117
+ end
118
+ end
119
+
120
+ class NullRouter
121
+ def application= _
122
+ end
123
+
124
+ def set_outlets
125
+ end
126
+ end
99
127
  end
100
128
  end
101
129
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clearwater-virtual_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Gaskins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-04 00:00:00.000000000 Z
11
+ date: 2018-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler