feat(idaa): collapsible Meeting Info panel on recovery meetings list
Wrap the data store element in an accordion-style toggle. State persists in idaa_loc (localStorage) so the user's preference survives page reloads. Added ds_info_collapsed field to idaa_local_data_struct.recovery_meetings. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -103,7 +103,11 @@ const idaa_local_data_struct: key_val = {
|
|||||||
// Favorites filter — when true, only show meetings the member has starred.
|
// Favorites filter — when true, only show meetings the member has starred.
|
||||||
// Favorites are stored server-side in event.mod_meetings_json.favorite (array of Novi UUIDs),
|
// Favorites are stored server-side in event.mod_meetings_json.favorite (array of Novi UUIDs),
|
||||||
// so they persist across browsers without requiring a Novi API write capability.
|
// so they persist across browsers without requiring a Novi API write capability.
|
||||||
qry__favorites_only: false
|
qry__favorites_only: false,
|
||||||
|
|
||||||
|
// Collapse the "Meeting Info" data store panel between the search bar and results.
|
||||||
|
// Persisted so the user's preference survives page reloads.
|
||||||
|
ds_info_collapsed: false
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -419,11 +419,34 @@ if (browser) {
|
|||||||
|
|
||||||
<Comp__event_obj_qry />
|
<Comp__event_obj_qry />
|
||||||
|
|
||||||
<Element_data_store
|
<div class="w-full max-w-xl mx-auto space-y-1">
|
||||||
ds_code="recovery_meetings_info"
|
<button
|
||||||
ds_type="html"
|
type="button"
|
||||||
class_li="rounded-lg preset-outlined-surface-200-800 m-auto p-2 space-y-2 w-full max-w-xl"
|
onclick={() => {
|
||||||
show_edit_btn={true} />
|
$idaa_loc.recovery_meetings.ds_info_collapsed =
|
||||||
|
!($idaa_loc.recovery_meetings.ds_info_collapsed ?? false);
|
||||||
|
}}
|
||||||
|
class="novi_btn btn btn-sm w-full flex items-center justify-between
|
||||||
|
rounded-lg preset-outlined-surface-200-800 hover:preset-tonal-surface
|
||||||
|
opacity-60 hover:opacity-100 transition-all px-3 py-1"
|
||||||
|
title={$idaa_loc.recovery_meetings.ds_info_collapsed
|
||||||
|
? 'Show meeting info'
|
||||||
|
: 'Collapse meeting info'}>
|
||||||
|
<span class="text-sm">
|
||||||
|
<span class="fas fa-info-circle mr-1 text-xs"></span>Meeting Info
|
||||||
|
</span>
|
||||||
|
<span class="fas text-xs opacity-60
|
||||||
|
{$idaa_loc.recovery_meetings.ds_info_collapsed ? 'fa-chevron-down' : 'fa-chevron-up'}">
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
{#if !($idaa_loc.recovery_meetings.ds_info_collapsed ?? false)}
|
||||||
|
<Element_data_store
|
||||||
|
ds_code="recovery_meetings_info"
|
||||||
|
ds_type="html"
|
||||||
|
class_li="rounded-lg preset-outlined-surface-200-800 m-auto p-2 space-y-2 w-full"
|
||||||
|
show_edit_btn={true} />
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
{#if Array.isArray(event_id_li) && event_id_li.length}
|
{#if Array.isArray(event_id_li) && event_id_li.length}
|
||||||
<Comp__event_obj_li_wrapper
|
<Comp__event_obj_li_wrapper
|
||||||
|
|||||||
Reference in New Issue
Block a user