rails_modal_manager 1.0.25 → 1.0.26

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: c9f0cbee142dc208ef7814e6f551cc6982e74f1de01542e20d9d4963f1fb4fe4
4
- data.tar.gz: b113bde25cb108d437ec8f3a52b3fe726030b241b60a74d9dd016d3425953094
3
+ metadata.gz: f2c7e861b06a7a378dc21ec988f07b02b0935149b585852976b0ceb50e0cd8d3
4
+ data.tar.gz: c010260ca9554d2b1d5cd308db92b02594bfeb35b344a9cd3c6c26c51eaec788
5
5
  SHA512:
6
- metadata.gz: 61dd50e705d27096a976e96ae18b9e852f25b93d97c7d53aa6a8833d96f51513e3ed3a7926aa7b3c711f747792747dc1b69ff6e83322b0517680ff7531255198
7
- data.tar.gz: 5673c2a3047fc8b9ccdf5785d6641b47637606cc32e280cac1818c6a33a5dd00d8373d3b6e51fd8137bc88f100f7de9070071fac12270186cc39a46e387d1677
6
+ metadata.gz: bdbfdfaa241ed600e1dbe673f66f5fc41b7b4decb89647f8a372dcf8d6e668020593189029036b0e9ebb99e0b7943b363269bcca9dfb0aef4d2279d716018f7a
7
+ data.tar.gz: e1f8b65751b40fec5a418f7a9063690429fd6c046b01d7793e6e88032110bf2a7a52a5e3fffcb29254985aa01358b24abf8906cb362d65e83b6b9cea5d4345b0
@@ -28,6 +28,8 @@ export default class extends Controller {
28
28
  collapsed: { type: Boolean, default: false },
29
29
  // 모바일+최대화 상태에서의 사이드바 모드: 'expanded' | 'icons' | 'hidden'
30
30
  sidebarMode: { type: String, default: 'icons' },
31
+ // 이미 선택된 항목을 다시 클릭했을 때 이벤트 발생 여부
32
+ refreshOnReselect: { type: Boolean, default: true },
31
33
  }
32
34
 
33
35
  connect() {
@@ -194,9 +196,24 @@ export default class extends Controller {
194
196
 
195
197
  const item = e.currentTarget
196
198
  const itemId = item.dataset.itemId
199
+ const isReselect = itemId === this.currentItemId
197
200
 
198
- // Skip if already active
199
- if (itemId === this.currentItemId) {
201
+ // 이미 선택된 항목을 다시 클릭한 경우
202
+ if (isReselect) {
203
+ // refreshOnReselect가 false면 무시
204
+ if (!this.refreshOnReselectValue) {
205
+ return
206
+ }
207
+ // refreshOnReselect가 true면 이벤트만 발생 (UI 변경 없음)
208
+ this.dispatch('itemSelect', {
209
+ detail: {
210
+ modalId: this.modalIdValue,
211
+ itemId: item.dataset.itemId,
212
+ itemLabel: item.dataset.itemLabel,
213
+ hasSubmenu: !!item.dataset.submenuId,
214
+ isReselect: true,
215
+ }
216
+ })
200
217
  return
201
218
  }
202
219
 
@@ -234,6 +251,7 @@ export default class extends Controller {
234
251
  itemId: item.dataset.itemId,
235
252
  itemLabel: item.dataset.itemLabel,
236
253
  hasSubmenu: !!item.dataset.submenuId,
254
+ isReselect: false,
237
255
  }
238
256
  })
239
257
  }
@@ -5,6 +5,7 @@
5
5
  modal_id: String - The modal ID
6
6
  items: Array - Menu items [{id:, label:, icon_svg:, badge:, active:, disabled:, panel_id:, submenu_id:, title:}]
7
7
  collapsed: Boolean - Initially collapsed (default: false)
8
+ refresh_on_reselect: Boolean - Dispatch event when clicking already selected item (default: true)
8
9
 
9
10
  Item options:
10
11
  - panel_id: ID of the content panel to show when selected
@@ -15,6 +16,7 @@
15
16
  modal_id ||= ""
16
17
  items ||= []
17
18
  collapsed ||= false
19
+ refresh_on_reselect = true if local_assigns[:refresh_on_reselect].nil?
18
20
 
19
21
  sidebar_classes = ["rmm-sidebar"]
20
22
  sidebar_classes << "rmm-sidebar-collapsed" if collapsed
@@ -22,7 +24,8 @@
22
24
  <div class="<%= sidebar_classes.join(' ') %>"
23
25
  data-controller="rmm-sidebar"
24
26
  data-rmm-sidebar-modal-id-value="<%= modal_id %>"
25
- data-rmm-sidebar-collapsed-value="<%= collapsed %>">
27
+ data-rmm-sidebar-collapsed-value="<%= collapsed %>"
28
+ data-rmm-sidebar-refresh-on-reselect-value="<%= refresh_on_reselect %>">
26
29
  <nav class="rmm-sidebar-nav" data-rmm-sidebar-target="nav">
27
30
  <% items.each do |item| %>
28
31
  <%
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsModalManager
4
- VERSION = "1.0.25"
4
+ VERSION = "1.0.26"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_modal_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.25
4
+ version: 1.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - reshacs