katalyst-tables 2.1.1 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c5cc96bc55db7f0cf4c3a22659e6054607640e6d33af939805d4be6ca8f25c1
4
- data.tar.gz: 1661c91c498d7c994afca1cb4a0bfcb69b6e2076a419ae71b138c5ae086e4a0d
3
+ metadata.gz: 5f13db4214a34d37ef3f5cdc1ce35b92d89102f627be22b31794496dad2ca4a7
4
+ data.tar.gz: 0d6f8dd7971eab72d20d3d1438e75daaf61ae1029c170e77653570312b07e150
5
5
  SHA512:
6
- metadata.gz: e6f94b4a381ec3f9e952d594e1525b61b97d17d2d8c42fcc230fa81328303768d174f2778eb3918f681f28d38227cf9f3c83af340e0ea5ecc78857c6dad7c44d
7
- data.tar.gz: 01a7fcf97aea5435986ab2b0357249bfd03bb60bc98fb22769aef88c154520753e9b340fe981edcf74f6bf4d32eafbd45bd318158cf92926fe3162f459928ff7
6
+ metadata.gz: c3bc64f42389475a49357b0c30236e854a8be2bcc81034d5be4a085a7e5bba54668ac7f0231ab55f8d63feb902620fb9019c9c1040f3422e5d0fd85512102abc
7
+ data.tar.gz: '09dcc5204e076d9e3e2e6d406d884b23d7bd3e8495bf3d8a6f4dfeb47c6d2109b4e8688d85de884d44d18f3cbe0c3696ce50bce8d0189ed45686c0f87c1e48fd'
data/README.md CHANGED
@@ -281,8 +281,8 @@ def index
281
281
  table = Katalyst::Turbo::TableComponent.new(collection:, id: "people")
282
282
 
283
283
  respond_to do |format|
284
+ format.turbo_stream { render table } if self_referred?
284
285
  format.html { render locals: { table: table } }
285
- format.turbo_stream { render table }
286
286
  end
287
287
  end
288
288
  ```
@@ -1,4 +1,5 @@
1
1
  import { Controller } from "@hotwired/stimulus";
2
+ import { Turbo } from "@hotwired/turbo";
2
3
 
3
4
  export default class TurboCollectionController extends Controller {
4
5
  static values = {
@@ -7,7 +8,7 @@ export default class TurboCollectionController extends Controller {
7
8
  }
8
9
 
9
10
  urlValueChanged(url) {
10
- window.history.replaceState({}, "", this.urlValue);
11
+ Turbo.navigator.history.replace(this.#url(url));
11
12
  }
12
13
 
13
14
  sortValueChanged(sort) {
@@ -19,4 +20,14 @@ export default class TurboCollectionController extends Controller {
19
20
  get #sortSelector() {
20
21
  return "input[name='sort']";
21
22
  }
23
+
24
+ #url(relativeUrl) {
25
+ const frame = this.element.closest("turbo-frame");
26
+
27
+ if (frame) {
28
+ return new URL(relativeUrl, frame.baseURI);
29
+ } else {
30
+ return new URL(relativeUrl, window.location.href);
31
+ }
32
+ }
22
33
  }
@@ -47,10 +47,10 @@ module Katalyst
47
47
  component_class.alias_method(:vc_render_template_for, :render_template_for)
48
48
  component_class.class_eval <<-RUBY, __FILE__, __LINE__ + 1
49
49
  def render_template_for(variant = nil)
50
- return vc_render_template_for(variant) unless turbo?
51
- controller.respond_to do |format|
52
- format.html { vc_render_template_for(variant) }
53
- format.turbo_stream { turbo_stream.replace(id, vc_render_template_for(variant)) }
50
+ if turbo? && response.media_type.eql?("text/vnd.turbo-stream.html")
51
+ turbo_stream.replace(id, vc_render_template_for(variant))
52
+ else
53
+ vc_render_template_for(variant)
54
54
  end
55
55
  end
56
56
  RUBY
@@ -3,7 +3,9 @@
3
3
  module Katalyst
4
4
  module Tables
5
5
  class PagyNavComponent < ViewComponent::Base # :nodoc:
6
- include Pagy::Frontend
6
+ # Pagy is not a required gem unless you're using pagination
7
+ # Expect to see NoMethodError failures if pagy is not available
8
+ "Pagy::Frontend".safe_constantize&.tap { |pagy| include(pagy) }
7
9
 
8
10
  attr_reader :pagy_options
9
11
 
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "pagy/backend"
4
-
5
3
  module Katalyst
6
4
  module Tables
7
5
  module Collection
@@ -41,7 +39,9 @@ module Katalyst
41
39
  end
42
40
 
43
41
  class Paginate # :nodoc:
44
- include Pagy::Backend
42
+ # Pagy is not a required gem unless you're using pagination
43
+ # Expect to see NoMethodError failures if pagy is not available
44
+ "Pagy::Backend".safe_constantize&.tap { |pagy| include(pagy) }
45
45
 
46
46
  def initialize(app)
47
47
  @app = app
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "pagy/backend"
4
-
5
3
  module Katalyst
6
4
  module Tables
7
5
  module Collection
data/config/importmap.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
4
+ pin "@hotwired/turbo", to: "turbo.min.js", preload: true
4
5
 
5
6
  pin_all_from Katalyst::Tables::Engine.root.join("app/assets/javascripts"),
6
7
  # preload in tests so that we don't start clicking before controllers load
@@ -27,6 +27,11 @@ module Katalyst
27
27
  .apply(collection)
28
28
  end
29
29
 
30
+ def self_referred?
31
+ request.referer.present? && URI.parse(request.referer).path == request.path
32
+ end
33
+ alias self_refered? self_referred?
34
+
30
35
  included do
31
36
  class_attribute :_default_table_component, instance_accessor: false
32
37
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Katalyst
4
4
  module Tables
5
- VERSION = "2.1.1"
5
+ VERSION = "2.1.3"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katalyst-tables
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katalyst Interactive
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-27 00:00:00.000000000 Z
11
+ date: 2023-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: html-attributes-utils