Files
OSIT-AE-App-Svelte/src/routes/events/ae_comp__events_menu_nav.svelte

131 lines
4.5 KiB
Svelte

<script lang="ts">
import {
ae_snip,
ae_loc,
ae_sess,
ae_api,
ae_trig,
slct,
slct_trigger
} from '$lib/stores/ae_stores';
interface Props {
// import { events_loc, events_sess, events_slct, events_trigger, events_trig_kv } from '$lib/stores/ae_events_stores';
hide?: boolean;
event_id?: null | string;
ae_core?: boolean;
events__launcher_id?: null | string; // event_location_id
events__location_id?: null | string; // event_location_id
events__locations?: boolean; // event_id
// export let events__presenter_id: null|string = null; // event_presenter_id
events__reports?: boolean; // event_id
events__settings?: boolean; // event_id
events__launcher_session_id?: null | string; // event_session_id to pass to launcher as ?session_id=
events__session_id?: null | string; // event_session_id — used for "Back to Session" link only
events__session_search?: boolean; // event_id
}
let {
hide = true,
event_id = null,
ae_core = false,
events__launcher_id = null,
events__launcher_session_id = null,
events__location_id = null,
events__locations = false,
events__reports = false,
events__settings = false,
events__session_id = null,
events__session_search = false
}: Props = $props();
// Build launcher URL segments separately so the href template stays simple (avoids ternaries in href attr)
let launcher_loc_seg = $derived(events__launcher_id ? `/${events__launcher_id}` : '');
let launcher_sess_qry = $derived(events__launcher_session_id ? `?session_id=${events__launcher_session_id}` : '');
</script>
<!-- This is for common navigation links. -->
<div
class="ae_comp__events_menu_nav flex flex-row flex-wrap gap-1.5 items-center justify-around"
class:hidden={hide}
>
<span
class="ae_menu__navigation_options flex flex-row flex-wrap gap-0.5 items-center justify-around"
>
<a
href="/core"
class="btn btn-sm mx-1 ae_btn_info"
class:hidden={!ae_core}
>
<span class="fas fa-cogs m-1"></span>
Æ Core
</a>
<a
href="/events/{event_id}/reports"
class="btn btn-sm mx-1 ae_btn_info"
class:hidden={!events__reports}
>
<span class="fas fa-chart-line m-1"></span>
Pres Mgmt Reports
</a>
<a
href="/events/{event_id}/locations"
class="btn btn-sm mx-1 ae_btn_info"
class:hidden={!events__locations}
>
<!-- <span class="fas fa-map-marker-alt m-1"></span> -->
<span class="fas fa-map-marked-alt m-1"></span>
Locations
</a>
<a
href="/events/{event_id}/settings"
class="btn btn-sm mx-1 ae_btn_warning"
class:hidden={!events__settings}
>
<span class="fas fa-tools m-1"></span>
Admin Tools
</a>
</span>
<span
class="ae_menu__navigation_options flex flex-row flex-wrap gap-0.5 items-center justify-around"
>
<a
href="/events/{event_id}/pres_mgmt"
class="btn btn-sm mx-1 ae_btn_info"
class:hidden={!events__session_search}
>
<span class="fas fa-search m-1"></span>
Session Search
</a>
<a
href="/events/{event_id}/session/{events__session_id}"
class="btn btn-sm mx-1 ae_btn_info"
class:hidden={!events__session_id}
>
<!-- <span class="fas fa-arrow-left m-1"></span> -->
<span class="fas fa-chalkboard-teacher m-1"></span>
Back to Session
</a>
<!-- eslint-disable-next-line svelte/valid-compile -->
<a
href="/events/{event_id}/launcher{launcher_loc_seg}{launcher_sess_qry}"
class="btn btn-sm mx-1 ae_btn_info"
class:hidden={!event_id}
>
<span class="fas fa-plane m-1"></span>
Launcher
</a>
<a
href="/events/{event_id}/location/{events__location_id}"
class="btn btn-sm mx-1 ae_btn_info"
class:hidden={!events__location_id}
>
<!-- <span class="fas fa-map m-1"></span> -->
<span class="fas fa-map-marker-alt m-1"></span>
Session Location
</a>
</span>
</div>