Skip to content

Commit 604c03c

Browse files
authored
Merge pull request #4226 from manyfold3d/cocoon-fix
Fix bug in cocooned groups with turbo
2 parents 0c2de0c + 4329a36 commit 604c03c

File tree

6 files changed

+19
-8
lines changed

6 files changed

+19
-8
lines changed

app/javascript/application.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@ import '@hotwired/turbo-rails'
33
import 'controllers/index'
44

55
import Rails from '@rails/ujs'
6-
import Cocooned from '@notus.sh/cocooned'
76

87
document.addEventListener('DOMContentLoaded', () => {
98
// Legacy Rails UJS
109
Rails.start()
11-
// Cocooned only wants initializing once, it seems
12-
Cocooned.start()
1310
})
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { Controller } from '@hotwired/stimulus'
2+
3+
import Cocooned from '@notus.sh/cocooned'
4+
5+
// Connects to data-controller="i18n"
6+
export default class extends Controller {
7+
connect (): void {
8+
Cocooned.create(this.element)
9+
}
10+
}

app/javascript/controllers/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { application } from './application'
66

77
import BulkEditController from './bulk_edit_controller'
88
import CarouselController from './carousel_controller'
9+
import CocoonedController from './cocooned_controller'
910
import EditableController from './editable_controller'
1011
import I18nController from './i18n_controller'
1112
import RendererController from './renderer_controller'
@@ -16,6 +17,7 @@ import UploadController from './upload_controller'
1617
import ZxcvbnController from './zxcvbn_controller'
1718

1819
application.register('carousel', CarouselController)
20+
application.register('cocooned', CocoonedController)
1921
application.register('bulk-edit', BulkEditController)
2022
application.register('editable', EditableController)
2123
application.register('i18n', I18nController)

app/javascript/controllers/tag_input_controller.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ export default class extends Controller {
1919
}
2020
})
2121
}
22+
2223
disconnect (): void {
23-
this.tomSelect?.destroy();
24+
this.tomSelect?.destroy()
2425
}
26+
2527
reconnect (): void {
26-
this.disconnect();
27-
this.connect();
28+
this.disconnect()
29+
this.connect()
2830
}
2931
}

app/views/application/_caber_relations_form.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<%= t(".permissions") %>
55
</div>
66
<div class="col border p-3">
7-
<%= cocooned_container id: "cocooned-caber-relations" do %>
7+
<%= cocooned_container id: "cocooned-caber-relations", data: {controller: "cocooned"} do %>
88
<%= form.fields_for :caber_relations do |f| %>
99
<%= render "caber_relation_fields", f: f %>
1010
<% end %>

app/views/application/_links_form.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<%= cocooned_container id: "cocooned-links" do %>
1+
<%= cocooned_container id: "cocooned-links", data: {controller: "cocooned"} do %>
22
<%= form.fields_for :links do |f| %>
33
<%= render "link_fields", f: f %>
44
<% end %>

0 commit comments

Comments
 (0)