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 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.
|
||||
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 />
|
||||
|
||||
<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 max-w-xl"
|
||||
show_edit_btn={true} />
|
||||
<div class="w-full max-w-xl mx-auto space-y-1">
|
||||
<button
|
||||
type="button"
|
||||
onclick={() => {
|
||||
$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}
|
||||
<Comp__event_obj_li_wrapper
|
||||
|
||||
Reference in New Issue
Block a user