@asd20/ui-next 2.4.1 → 2.4.3
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.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.4.3](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.4.2...ui-next-v2.4.3) (2026-05-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* app search results default urls are relative; should be absolute ([c21db8e](https://github.com/academydistrict20/asd20-ui-next/commit/c21db8ece67d424622f1287c1ca0ec72d42ee123))
|
|
9
|
+
|
|
10
|
+
## [2.4.2](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.4.1...ui-next-v2.4.2) (2026-05-01)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* keep link urls provided by ai answers free of additional parameters ([dfdef5c](https://github.com/academydistrict20/asd20-ui-next/commit/dfdef5c872e67a99c3030e186a32e42eb3557411))
|
|
16
|
+
|
|
3
17
|
## [2.4.1](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.4.0...ui-next-v2.4.1) (2026-05-01)
|
|
4
18
|
|
|
5
19
|
|
package/package.json
CHANGED
|
@@ -555,6 +555,7 @@ import mapFilesToListItems from '../../../helpers/mapFilesToListItems'
|
|
|
555
555
|
import logSearchAnalytics from '../../../helpers/logSearchAnalytics'
|
|
556
556
|
import logSearchFeedback from '../../../helpers/logSearchFeedback'
|
|
557
557
|
import queryAiSite from '../../../helpers/queryAiSite'
|
|
558
|
+
import { NO_PAGE_RESULTS_FALLBACKS } from '../../../helpers/queryPages'
|
|
558
559
|
|
|
559
560
|
// Mixins
|
|
560
561
|
import globalPropMixinFactory from '../../../mixins/globalPropMixinFactory.js'
|
|
@@ -574,52 +575,12 @@ const SEARCH_CACHE_MAX_AGE_MS = 1000 * 60 * 45
|
|
|
574
575
|
const SEARCH_STATE_MAX_AGE_MS = 1000 * 60 * 60 * 3
|
|
575
576
|
const SEARCH_STATE_SYNC_EVENT = 'asd20-site-search:state-sync'
|
|
576
577
|
const MANUAL_TAB_OVERRIDE_WINDOW_MS = 1200
|
|
577
|
-
const
|
|
578
|
-
{
|
|
579
|
-
|
|
580
|
-
slug: 'calendar',
|
|
581
|
-
title: 'Calendar',
|
|
582
|
-
url: '/calendar',
|
|
583
|
-
isNoResultsFallback: true,
|
|
584
|
-
categories: ['App'],
|
|
585
|
-
pageTypeId: 'application',
|
|
586
|
-
metaDescription: 'View district and school calendars.',
|
|
578
|
+
const SEARCH_NO_PAGE_RESULTS_FALLBACKS = NO_PAGE_RESULTS_FALLBACKS.map(
|
|
579
|
+
(page) => ({
|
|
580
|
+
...page,
|
|
587
581
|
ownerOrganizationId: DISTRICT_ORG_ID,
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
id: 'directory',
|
|
591
|
-
slug: 'directory',
|
|
592
|
-
title: 'Directory',
|
|
593
|
-
url: '/directory',
|
|
594
|
-
isNoResultsFallback: true,
|
|
595
|
-
categories: ['App'],
|
|
596
|
-
pageTypeId: 'application',
|
|
597
|
-
metaDescription: 'Find staff and department contacts.',
|
|
598
|
-
ownerOrganizationId: DISTRICT_ORG_ID,
|
|
599
|
-
},
|
|
600
|
-
{
|
|
601
|
-
id: 'school-directory',
|
|
602
|
-
slug: 'schools',
|
|
603
|
-
title: 'Schools',
|
|
604
|
-
url: '/schools',
|
|
605
|
-
isNoResultsFallback: true,
|
|
606
|
-
categories: ['App'],
|
|
607
|
-
pageTypeId: 'application',
|
|
608
|
-
metaDescription: 'Browse all Academy District 20 schools.',
|
|
609
|
-
ownerOrganizationId: DISTRICT_ORG_ID,
|
|
610
|
-
},
|
|
611
|
-
{
|
|
612
|
-
id: 'help-desk',
|
|
613
|
-
slug: 'help-desk',
|
|
614
|
-
title: 'Help Desk',
|
|
615
|
-
url: 'https://www.asd20.org/help-desk/',
|
|
616
|
-
isNoResultsFallback: true,
|
|
617
|
-
categories: ['Support'],
|
|
618
|
-
pageTypeId: 'detail-page',
|
|
619
|
-
metaDescription: 'Get support from the Academy District 20 Help Desk.',
|
|
620
|
-
ownerOrganizationId: DISTRICT_ORG_ID,
|
|
621
|
-
},
|
|
622
|
-
]
|
|
582
|
+
})
|
|
583
|
+
)
|
|
623
584
|
|
|
624
585
|
// const SUBDOMAIN_LABELS = {
|
|
625
586
|
// rampart: 'Rampart High School',
|
|
@@ -776,7 +737,7 @@ export default {
|
|
|
776
737
|
}
|
|
777
738
|
if (!this.shouldUsePageFallbacks) return []
|
|
778
739
|
|
|
779
|
-
return
|
|
740
|
+
return SEARCH_NO_PAGE_RESULTS_FALLBACKS.map(page => ({
|
|
780
741
|
...page,
|
|
781
742
|
categories: Array.isArray(page.categories) ? [...page.categories] : [],
|
|
782
743
|
}))
|
|
@@ -1857,34 +1818,7 @@ export default {
|
|
|
1857
1818
|
|
|
1858
1819
|
appendSearchContextToUrl(rawUrl) {
|
|
1859
1820
|
if (!rawUrl || typeof rawUrl !== 'string') return rawUrl
|
|
1860
|
-
|
|
1861
|
-
if (!state) return rawUrl
|
|
1862
|
-
if (typeof window === 'undefined' || typeof URL === 'undefined') {
|
|
1863
|
-
return rawUrl
|
|
1864
|
-
}
|
|
1865
|
-
|
|
1866
|
-
const trimmedUrl = rawUrl.trim()
|
|
1867
|
-
if (!trimmedUrl) return rawUrl
|
|
1868
|
-
if (/^(#|mailto:|tel:|javascript:)/i.test(trimmedUrl)) return rawUrl
|
|
1869
|
-
|
|
1870
|
-
try {
|
|
1871
|
-
const resolvedUrl = new URL(trimmedUrl, window.location.href)
|
|
1872
|
-
if (resolvedUrl.origin !== window.location.origin) return rawUrl
|
|
1873
|
-
|
|
1874
|
-
const stateQueryValues = this.buildRouteSearchQueryValues(state)
|
|
1875
|
-
Object.entries(stateQueryValues).forEach(([key, value]) => {
|
|
1876
|
-
if (value === undefined || value === null || value === '') {
|
|
1877
|
-
resolvedUrl.searchParams.delete(key)
|
|
1878
|
-
return
|
|
1879
|
-
}
|
|
1880
|
-
|
|
1881
|
-
resolvedUrl.searchParams.set(key, value)
|
|
1882
|
-
})
|
|
1883
|
-
|
|
1884
|
-
return `${resolvedUrl.pathname}${resolvedUrl.search}${resolvedUrl.hash}`
|
|
1885
|
-
} catch (error) {
|
|
1886
|
-
return rawUrl
|
|
1887
|
-
}
|
|
1821
|
+
return rawUrl
|
|
1888
1822
|
},
|
|
1889
1823
|
|
|
1890
1824
|
async restoreSearchStateFromRoute() {
|
|
@@ -80,56 +80,13 @@ import Asd20List from '../../organisms/Asd20List'
|
|
|
80
80
|
import Asd20Button from '../../atoms/Asd20Button'
|
|
81
81
|
import Asd20SiteNavigation from '../../../components/organisms/Asd20SiteNavigation'
|
|
82
82
|
|
|
83
|
-
import queryPages from '../../../helpers/queryPages'
|
|
83
|
+
import queryPages, { NO_PAGE_RESULTS_FALLBACKS } from '../../../helpers/queryPages'
|
|
84
84
|
import mapPagesToListItems from '../../../helpers/mapPagesToListItems'
|
|
85
85
|
import pageTemplateMixin from '../../../mixins/pageTemplateMixin'
|
|
86
86
|
|
|
87
87
|
// import Asd20PageContent from '../../../components/organisms/Asd20PageContent'
|
|
88
88
|
|
|
89
89
|
const MAX_SUGGESTED_PAGES = 10
|
|
90
|
-
const NO_PAGE_RESULTS_FALLBACKS = [
|
|
91
|
-
{
|
|
92
|
-
id: 'calendar',
|
|
93
|
-
slug: 'calendar',
|
|
94
|
-
title: 'Calendar',
|
|
95
|
-
url: '/calendar',
|
|
96
|
-
isNoResultsFallback: true,
|
|
97
|
-
categories: ['App'],
|
|
98
|
-
pageTypeId: 'application',
|
|
99
|
-
metaDescription: 'View district and school calendars.',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
id: 'directory',
|
|
103
|
-
slug: 'directory',
|
|
104
|
-
title: 'Directory',
|
|
105
|
-
url: '/directory',
|
|
106
|
-
isNoResultsFallback: true,
|
|
107
|
-
categories: ['App'],
|
|
108
|
-
pageTypeId: 'application',
|
|
109
|
-
metaDescription: 'Find staff and department contacts.',
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
id: 'school-directory',
|
|
113
|
-
slug: 'schools',
|
|
114
|
-
title: 'Schools',
|
|
115
|
-
url: '/schools',
|
|
116
|
-
isNoResultsFallback: true,
|
|
117
|
-
categories: ['App'],
|
|
118
|
-
pageTypeId: 'application',
|
|
119
|
-
metaDescription: 'Browse all Academy District 20 schools.',
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
id: 'help-desk',
|
|
123
|
-
slug: 'help-desk',
|
|
124
|
-
title: 'Help Desk',
|
|
125
|
-
url: 'https://www.asd20.org/help-desk/',
|
|
126
|
-
isNoResultsFallback: true,
|
|
127
|
-
categories: ['Support'],
|
|
128
|
-
pageTypeId: 'detail-page',
|
|
129
|
-
metaDescription: 'Get support from the Academy District 20 Help Desk.',
|
|
130
|
-
},
|
|
131
|
-
]
|
|
132
|
-
|
|
133
90
|
export default {
|
|
134
91
|
components: {
|
|
135
92
|
Asd20List,
|
|
@@ -8,7 +8,7 @@ export const NO_PAGE_RESULTS_FALLBACKS = [
|
|
|
8
8
|
id: 'calendar',
|
|
9
9
|
slug: 'calendar',
|
|
10
10
|
title: 'Calendar',
|
|
11
|
-
url: '
|
|
11
|
+
url: 'https://calendar.asd20.org',
|
|
12
12
|
isNoResultsFallback: true,
|
|
13
13
|
categories: ['App'],
|
|
14
14
|
pageTypeId: 'application',
|
|
@@ -18,7 +18,7 @@ export const NO_PAGE_RESULTS_FALLBACKS = [
|
|
|
18
18
|
id: 'directory',
|
|
19
19
|
slug: 'directory',
|
|
20
20
|
title: 'Directory',
|
|
21
|
-
url: '
|
|
21
|
+
url: 'https://directory.asd20.org',
|
|
22
22
|
isNoResultsFallback: true,
|
|
23
23
|
categories: ['App'],
|
|
24
24
|
pageTypeId: 'application',
|
|
@@ -28,7 +28,7 @@ export const NO_PAGE_RESULTS_FALLBACKS = [
|
|
|
28
28
|
id: 'school-directory',
|
|
29
29
|
slug: 'schools',
|
|
30
30
|
title: 'Schools',
|
|
31
|
-
url: '
|
|
31
|
+
url: 'https://schools.asd20.org',
|
|
32
32
|
isNoResultsFallback: true,
|
|
33
33
|
categories: ['App'],
|
|
34
34
|
pageTypeId: 'application',
|