From ed0ce9754862a606e6bc3f179b0b5b61a2935f39 Mon Sep 17 00:00:00 2001 From: josh Date: Sat, 15 Aug 2026 21:02:02 +1000 Subject: [PATCH] Formatting and Share Buttons --- .../FlightsGoneBy/CopyPageButton.vue | 55 ++++++++++++++++ .../Components/FlightsGoneBy/FlightFilter.vue | 26 -------- .../FlightsGoneBy/GenericBadgeTable.vue | 19 ++++-- .../Components/FlightsGoneBy/MainFooter.vue | 15 +++-- .../Components/FlightsGoneBy/MainHeader.vue | 2 +- resources/js/Components/UserSearchBox.vue | 1 + resources/js/Layouts/MainLayout.vue | 18 +++++ ...ntinents.all_continent_pairs_both_ways.vue | 66 ++++++++++++++++++- ...continents.all_continent_pairs_one_way.vue | 58 ++++++++++++++-- 9 files changed, 217 insertions(+), 43 deletions(-) create mode 100644 resources/js/Components/FlightsGoneBy/CopyPageButton.vue diff --git a/resources/js/Components/FlightsGoneBy/CopyPageButton.vue b/resources/js/Components/FlightsGoneBy/CopyPageButton.vue new file mode 100644 index 0000000..e55fb2e --- /dev/null +++ b/resources/js/Components/FlightsGoneBy/CopyPageButton.vue @@ -0,0 +1,55 @@ + + + diff --git a/resources/js/Components/FlightsGoneBy/FlightFilter.vue b/resources/js/Components/FlightsGoneBy/FlightFilter.vue index 89cf595..48b0780 100644 --- a/resources/js/Components/FlightsGoneBy/FlightFilter.vue +++ b/resources/js/Components/FlightsGoneBy/FlightFilter.vue @@ -270,20 +270,6 @@ onMounted(async () => { emitFilters() }) -// ── Copy link ───────────────────────────────────────────────────────────────── - -const linkCopied = ref(false) - -async function copyFilterLink() { - try { - await navigator.clipboard.writeText(window.location.href) - linkCopied.value = true - setTimeout(() => { linkCopied.value = false }, 2000) - } catch { - // Clipboard API unavailable (e.g. non-secure context) - nothing to fall - // back to here, the button just silently no-ops. - } -} // ── Helpers ─────────────────────────────────────────────────────────────────── @@ -670,18 +656,6 @@ const countryFlagClass = (code: string) => - -
- - {{ linkCopied ? 'Copied!' : 'Copy Link to This Page With Filters' }} - -
diff --git a/resources/js/Components/FlightsGoneBy/GenericBadgeTable.vue b/resources/js/Components/FlightsGoneBy/GenericBadgeTable.vue index c246cd9..0086b4d 100644 --- a/resources/js/Components/FlightsGoneBy/GenericBadgeTable.vue +++ b/resources/js/Components/FlightsGoneBy/GenericBadgeTable.vue @@ -4,6 +4,7 @@ defineProps<{ rowKey: (row: T) => string | number hasItems: (row: T) => boolean labelWidth?: string + compactOnMobile?: boolean }>() @@ -15,7 +16,11 @@ defineProps<{ class="badge-row" > -
+
@@ -38,8 +43,6 @@ defineProps<{ container-type: inline-size; } - - .badge-row { display: flex; align-items: center; @@ -49,13 +52,13 @@ defineProps<{ .badge-label { flex: 0 0 auto; - width: 15em; + width: 21em; padding: 0.5em; border-right: 1px solid var(--table-border); align-self: stretch; display: flex; align-items: center; - font-size:0.9rem; + font-size: 0.9rem; } @container (max-width: 480px) { @@ -63,6 +66,12 @@ defineProps<{ font-size: 0.75rem; width: 9em; } + + .badge-label--compact { + font-size: 0.7rem; + width: clamp(6em, 50cqw, 9em); + flex-shrink: 0; + } } .badge-scroll-container { diff --git a/resources/js/Components/FlightsGoneBy/MainFooter.vue b/resources/js/Components/FlightsGoneBy/MainFooter.vue index 899a620..9cfcf54 100644 --- a/resources/js/Components/FlightsGoneBy/MainFooter.vue +++ b/resources/js/Components/FlightsGoneBy/MainFooter.vue @@ -1,6 +1,7 @@