@stapel/search-react 0.9.1 → 0.10.0
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 +34 -0
- package/dist/default/FilterChips.d.ts.map +1 -1
- package/dist/default/FilterChips.js +8 -23
- package/dist/default/FilterChips.js.map +1 -1
- package/dist/default/LocationSummaryLine.d.ts +24 -0
- package/dist/default/LocationSummaryLine.d.ts.map +1 -0
- package/dist/default/LocationSummaryLine.js +83 -0
- package/dist/default/LocationSummaryLine.js.map +1 -0
- package/dist/default/SearchPage.d.ts +19 -0
- package/dist/default/SearchPage.d.ts.map +1 -1
- package/dist/default/SearchPage.js +6 -6
- package/dist/default/SearchPage.js.map +1 -1
- package/dist/default/geoSheet.d.ts +61 -0
- package/dist/default/geoSheet.d.ts.map +1 -0
- package/dist/default/geoSheet.js +63 -0
- package/dist/default/geoSheet.js.map +1 -0
- package/dist/default/index.d.ts +2 -0
- package/dist/default/index.d.ts.map +1 -1
- package/dist/default/index.js +1 -0
- package/dist/default/index.js.map +1 -1
- package/dist/headless/useSearchCount.d.ts +44 -0
- package/dist/headless/useSearchCount.d.ts.map +1 -0
- package/dist/headless/useSearchCount.js +121 -0
- package/dist/headless/useSearchCount.js.map +1 -0
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +1 -0
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/keys.d.ts +10 -0
- package/dist/i18n/keys.d.ts.map +1 -1
- package/dist/i18n/keys.js +11 -0
- package/dist/i18n/keys.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +1 -0
- package/dist/i18n/ru.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/state/limits.d.ts +21 -0
- package/dist/state/limits.d.ts.map +1 -1
- package/dist/state/limits.js +21 -0
- package/dist/state/limits.js.map +1 -1
- package/llms.txt +2 -1
- package/manifest.json +30 -2
- package/nav-manifest.json +1 -1
- package/package.json +4 -4
- package/src/analytics/generated/events.json +1 -1
- package/src/default/FilterChips.tsx +17 -56
- package/src/default/LocationSummaryLine.tsx +187 -0
- package/src/default/SearchPage.tsx +33 -3
- package/src/default/geoSheet.tsx +161 -0
- package/src/default/index.ts +3 -0
- package/src/headless/useSearchCount.ts +189 -0
- package/src/i18n/es.ts +1 -0
- package/src/i18n/keys.ts +11 -0
- package/src/i18n/ru.ts +1 -0
- package/src/index.ts +8 -0
- package/src/state/limits.ts +23 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# @stapel/search-react
|
|
2
2
|
|
|
3
|
+
## 0.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- c887a5a: **The SERP gets the row that says where it is looking: `<LocationSummaryLine>` on `/default`, and a `resultsHeader` slot on `<SearchPage>` to put it in.**
|
|
8
|
+
|
|
9
|
+
**Why location gets a line of its own when it is already a chip.** The chip row SCROLLS: the geo chip is one of eight and it is off screen the moment somebody has scrolled to "Year". Location is the one constraint on a classified that changes what a result MEANS rather than narrowing a set — "1 200 €" is a different offer in the next city — so it is the one that has to be readable without scrolling anything. Left: a pin, the place, and the radius. Right: the filter affordance with a COUNT.
|
|
10
|
+
|
|
11
|
+
**The count, not a dot, and it is the same count.** `<FilterChips>`'s leading chip is a 32px circle, so it shows a dot — a number inside it is a number nobody reads. This is a full-width row with a word on it, so the badge says HOW MANY constraints are applied, which is the difference between "something is filtered" and "four things are, and that is why there are three results". Both read `activeFilters` off the URL state; there is no second counter.
|
|
12
|
+
|
|
13
|
+
**Still never a coordinate.** This pair holds a `lat` and a `lon` and no geocoder, so the line prints the name it was HANDED (`geoLabel`), or says a place is chosen, and adds the radius — which IS a number this pair owns (`radius_km`). With nothing applied it says the search is looking everywhere, which is both the truth and the invitation to narrow it. `test/locationSummary.test.tsx` repeats `geo.test.tsx`'s negative assertion for the new surface: no digit of the point reaches the DOM.
|
|
14
|
+
|
|
15
|
+
**One location sheet, two doors.** The geo chip's bottom sheet moved into `geoSheet.tsx` and both surfaces mount it, because on the ref both rows carry a location control and a person tapping either must land in the same place. Two copies of a sheet is two places for "clear the location" to drift. `<FilterChips>` keeps its existing test ids; the summary line has its own, so a page holding both rows never hands a test two elements under one name.
|
|
16
|
+
|
|
17
|
+
**`resultsHeader` is a NEW slot, and the four existing ones were each checked first.** `filtersHeader` is inside the filter panel — on a phone that is behind the sheet, which is precisely where a location summary must not be. `breadcrumb` renders in the right position but names a walk up the CATEGORY tree, so a host wanting a trail AND a location row would have had to choose. `resultsHeading` and the pane's `toolbar` are inside the results pane, below the chips. Nothing sat between the search box and the filters, and that gap is exactly where the ref puts this row. It renders in the page's vertical stack, so it spans the full width in both layouts — above the chip row on a phone, above the two columns on a desktop — because what it states describes the whole page, not the results column of it.
|
|
18
|
+
|
|
19
|
+
**Saved search is still not here.** The "notify me about new ones" control remains the host's, in the existing `resultsAction` slot, and remains a STUB there: there is no saved-search backend, no subscription, no schedule and no consent record, and this release does not pretend otherwise.
|
|
20
|
+
|
|
21
|
+
New key in en/ru/es: `search.geo.everywhere` — deliberately not a reuse of `search.geo.clear`, which is the label on a BUTTON that widens the search. The two are the same word in English and diverge the moment a translator reads one as an imperative.
|
|
22
|
+
|
|
23
|
+
- 835526f: **"How many results would this give me?" is a hook now — and it says out loud that the backend has no way to answer it cheaply.** `useSearchCount(state)`, headless, from the package root.
|
|
24
|
+
|
|
25
|
+
A quick-search panel's button ("Show 128 listings") has to know the total for a state that is not on screen and not in the URL: the person is still composing it. `<SearchResults>` cannot answer that — it reads the committed URL state — and `useAppliedCount` deliberately reads the page already in cache rather than issuing a search of its own. So this is a read over a state the caller hands in, and it returns the fleet's shape for one: `LoadState<{ count: number | null; kind: SearchCountKind }>`.
|
|
26
|
+
|
|
27
|
+
**There is no count-only endpoint, and this hook rides the full query on purpose.** `SearchApi` is `query`, `suggest` and `ranking`; nothing answers "how many" without also assembling a page. So the request is the ordinary `/query` with `limit=1` and `facets=off`, and the total comes out of the envelope. That has a real cost — the engine still ranks the candidate set — and it is written into the hook's doc comment rather than hidden behind a name that sounds cheap. **Follow-up for stapel-search:** a `GET /count` verb answering the three count fields plus `degraded[]` and nothing else. When it lands, this hook's body changes and its signature does not.
|
|
28
|
+
|
|
29
|
+
**What is dropped from the state is the interesting half.** `anchor`/`direction` go, because a cursor asks about a PAGE and a count is about the whole set (keeping one would also cache the same total once per page somebody walked through). `sort` goes, because the total does not depend on the order and keeping it would miss the cache on every sort change. `facets` goes to `"off"`, because counting facets is the expensive half of a request that draws no facet panel. Everything that changes the ANSWER — `q`, `category`, `owner`, filters, ranges, geo, `lang` — is sent exactly as a real search would send it. `countQueryState()` is exported so this is readable rather than inferred.
|
|
30
|
+
|
|
31
|
+
**The debounce is the mitigation the endpoint gap forces.** The FIRST state is asked about immediately — a panel that opens should not wait a quarter second to say its number — and every change after that is coalesced onto the LAST one (`SEARCH_COUNT_DEBOUNCE_MS`, 250ms; `0` disables it). Typing "hond" then "honda" asks once, about "honda", never about "hond" late. `enabled: false` holds the hook at `loading` for a panel still resolving its category.
|
|
32
|
+
|
|
33
|
+
**The kind travels with the number.** `"exact"` is a total, `"at_least"` is a floor, `"unknown"` is the engine declining to say — and `count: null` under `"unknown"` is never rendered as `0`. That is the same contract `state/degradations.ts` states for the results page, reused rather than restated, so a counted button cannot drift from a counted heading.
|
|
34
|
+
|
|
35
|
+
Also exported: `SEARCH_COUNT_PAGE_SIZE`, `SEARCH_COUNT_DEBOUNCE_MS`.
|
|
36
|
+
|
|
3
37
|
## 0.9.1
|
|
4
38
|
|
|
5
39
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChips.d.ts","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterChips.d.ts","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAS3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,8DAA8D;AAC9D,eAAO,MAAM,cAAc,wBAAwB,CAAC;AAEpD,qEAAqE;AACrE,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAKnC;AAqBD,MAAM,WAAW,gBAAgB;IAC/B;iEAC6D;IAC7D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;gDAE4C;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnE;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;2DACuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAiBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAsMjE"}
|
|
@@ -49,18 +49,18 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
49
49
|
* gets the leading chip alone.
|
|
50
50
|
*/
|
|
51
51
|
import { useState } from "react";
|
|
52
|
-
import { Button
|
|
52
|
+
import { Button } from "antd";
|
|
53
53
|
import { SkinDialog, useDialogSurface } from "@stapel/tokens-antd/skin";
|
|
54
|
-
import {
|
|
54
|
+
import { useT } from "@stapel/core";
|
|
55
55
|
import { radii, spacing } from "@stapel/tokens";
|
|
56
56
|
import { useFacetPanel } from "../headless/FacetPanel.js";
|
|
57
|
-
import { useAppliedCount } from "../headless/useAppliedCount.js";
|
|
58
57
|
import { useSearchState } from "../headless/SearchStateProvider.js";
|
|
59
58
|
import { buildRangeGroups } from "../state/ranges.js";
|
|
60
59
|
import { SEARCH_I18N_KEYS } from "../i18n/keys.js";
|
|
61
60
|
import { FacetGroupControl } from "./FacetGroupControl.js";
|
|
62
61
|
import { RangeFilterRow } from "./RangeFilterRow.js";
|
|
63
62
|
import { geoSummaryFallback } from "./FacetPanelPane.js";
|
|
63
|
+
import { CHIP_GEO_TEST_IDS, GeoSheet, useApplyLabel } from "./geoSheet.js";
|
|
64
64
|
/** The class the scroller carries, for {@link chipRowCss}. */
|
|
65
65
|
export const CHIP_ROW_CLASS = "stapel-filter-chips";
|
|
66
66
|
/** The `href` the hoisted chip-row stylesheet is deduplicated by. */
|
|
@@ -107,15 +107,14 @@ function chipLabel(group, t) {
|
|
|
107
107
|
}
|
|
108
108
|
export function FilterChips(props) {
|
|
109
109
|
const t = useT();
|
|
110
|
-
const
|
|
111
|
-
const { state, setGeo } = useSearchState();
|
|
110
|
+
const { state } = useSearchState();
|
|
112
111
|
const bag = useFacetPanel({
|
|
113
112
|
...(props.categoryFeatures !== undefined
|
|
114
113
|
? { categoryFeatures: props.categoryFeatures }
|
|
115
114
|
: {}),
|
|
116
115
|
...(props.locale !== undefined ? { locale: props.locale } : {}),
|
|
117
116
|
});
|
|
118
|
-
const
|
|
117
|
+
const applyLabel = useApplyLabel();
|
|
119
118
|
const surface = useDialogSurface();
|
|
120
119
|
const [open, setOpen] = useState(null);
|
|
121
120
|
const ranges = buildRangeGroups({
|
|
@@ -128,14 +127,6 @@ export function FilterChips(props) {
|
|
|
128
127
|
const groups = bag.state.status === "ready"
|
|
129
128
|
? bag.state.data.filter((group) => group.options.length > 0)
|
|
130
129
|
: [];
|
|
131
|
-
// The same sentence the panel's own commit button says, for the same reason:
|
|
132
|
-
// the results are BEHIND this sheet, so the button that closes it is the
|
|
133
|
-
// only place a person learns what their choice did.
|
|
134
|
-
const applyLabel = applied.count === null || applied.kind === "unknown"
|
|
135
|
-
? t(SEARCH_I18N_KEYS.filtersApply)
|
|
136
|
-
: tPlural(applied.kind === "at_least"
|
|
137
|
-
? SEARCH_I18N_KEYS.filtersShowCountAtLeast
|
|
138
|
-
: SEARCH_I18N_KEYS.filtersShowCount, { count: applied.count });
|
|
139
130
|
const close = () => {
|
|
140
131
|
setOpen(null);
|
|
141
132
|
};
|
|
@@ -171,15 +162,9 @@ export function FilterChips(props) {
|
|
|
171
162
|
return group === undefined
|
|
172
163
|
? null
|
|
173
164
|
: sheetFor(open, group.label, _jsx(RangeFilterRow, { group: group, onApply: bag.setRange }));
|
|
174
|
-
})(), open === "geo"
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
onChange: (next) => {
|
|
178
|
-
setGeo(next);
|
|
179
|
-
},
|
|
180
|
-
}) ?? _jsx(SlotPlaceholder, { name: "renderGeoFilter", "data-testid": "search-chip-geo-slot" }), geo !== undefined && (_jsxs(_Fragment, { children: [_jsx(Typography.Text, { type: "secondary", "data-testid": "search-chip-geo-summary", children: geoChipLabel }), _jsx(Button, { style: { alignSelf: "flex-start" }, "data-testid": "search-chip-geo-clear", "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
|
|
181
|
-
setGeo(null);
|
|
182
|
-
}, children: t(SEARCH_I18N_KEYS.geoClear) })] }))] }))] }));
|
|
165
|
+
})(), _jsx(GeoSheet, { open: open === "geo", onClose: close, testIds: CHIP_GEO_TEST_IDS, ...(props.renderGeoFilter !== undefined
|
|
166
|
+
? { renderGeoFilter: props.renderGeoFilter }
|
|
167
|
+
: {}), ...(props.geoLabel !== undefined ? { geoLabel: props.geoLabel } : {}) })] }));
|
|
183
168
|
}
|
|
184
169
|
/** The mark on the "all filters" chip: something is applied. Not a count —
|
|
185
170
|
* the counts are on the chips beside it, and a number inside a 32px circle is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChips.js","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"FilterChips.js","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode } from "react";
|
|
2
|
+
import type { GeoFilterSlotProps } from "./FacetPanelPane.js";
|
|
3
|
+
export interface LocationSummaryLineProps {
|
|
4
|
+
/**
|
|
5
|
+
* The location control the sheet opens onto — the same slot the panel and
|
|
6
|
+
* the chip row take. Without it the sheet still opens (a location the URL
|
|
7
|
+
* already carries can be widened and cleared with no geocoder), and the
|
|
8
|
+
* absence is NAMED in development rather than left as a blank sheet.
|
|
9
|
+
*/
|
|
10
|
+
readonly renderGeoFilter?: (slot: GeoFilterSlotProps) => ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* What the current place is CALLED. See the file header: this pair prints
|
|
13
|
+
* the name it is handed or admits it does not know one, never the numbers.
|
|
14
|
+
*/
|
|
15
|
+
readonly geoLabel?: ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Open the whole filter panel — the same contract `<FilterChips.onOpenAll>`
|
|
18
|
+
* states, and conventionally the same callback: the SURFACE owns that sheet
|
|
19
|
+
* because the surface is what it covers.
|
|
20
|
+
*/
|
|
21
|
+
readonly onOpenAll: () => void;
|
|
22
|
+
}
|
|
23
|
+
export declare function LocationSummaryLine(props: LocationSummaryLineProps): ReactElement;
|
|
24
|
+
//# sourceMappingURL=LocationSummaryLine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocationSummaryLine.d.ts","sourceRoot":"","sources":["../../src/default/LocationSummaryLine.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAe9D,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAyBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAmFd"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* `<LocationSummaryLine>` — the row above a phone SERP's chips: WHERE this
|
|
4
|
+
* search is looking on the left, and how much has been narrowed on the right.
|
|
5
|
+
*
|
|
6
|
+
* ## Why the location gets a line of its own, above the chips
|
|
7
|
+
*
|
|
8
|
+
* It is already a chip (`<FilterChips>` draws one), and on the refs it is a
|
|
9
|
+
* ROW as well, and that is not redundancy. A chip row scrolls: the geo chip is
|
|
10
|
+
* one of eight and it is off screen the moment somebody has scrolled to
|
|
11
|
+
* "Year". Location is the one constraint on a classified that changes what a
|
|
12
|
+
* result MEANS rather than narrowing a set — "1 200 €" is a different offer in
|
|
13
|
+
* the next city — so it is the one that must be readable without scrolling
|
|
14
|
+
* anything. The two controls open the same sheet (`geoSheet.tsx`), so tapping
|
|
15
|
+
* either lands in the same place.
|
|
16
|
+
*
|
|
17
|
+
* ## Never a coordinate
|
|
18
|
+
*
|
|
19
|
+
* This pair holds a `lat` and a `lon` and has no way on earth to turn them
|
|
20
|
+
* into "Berlin Mitte" — that is a geocoder, and a search package that grew one
|
|
21
|
+
* to say a nicer sentence would have taken on the whole of `geo-react`. So the
|
|
22
|
+
* line says the name it was HANDED (`geoLabel`), or that a place is chosen,
|
|
23
|
+
* and adds the radius, which is a number this pair does own. With nothing
|
|
24
|
+
* applied it says the search is looking everywhere, which is the truth and is
|
|
25
|
+
* also the invitation to narrow it.
|
|
26
|
+
*
|
|
27
|
+
* ## The right-hand affordance carries a COUNT, and the chip row carries a dot
|
|
28
|
+
*
|
|
29
|
+
* `<FilterChips>`'s leading chip is a 32px circle: a number inside it is a
|
|
30
|
+
* number nobody reads, so it shows a dot. This is a full-width row with a word
|
|
31
|
+
* on it, so the badge has room to say HOW MANY constraints are applied — which
|
|
32
|
+
* is the difference between "something is filtered" and "four things are, and
|
|
33
|
+
* that is why there are three results". Both read the same
|
|
34
|
+
* `activeFilters` off the URL state; neither invents a second counter.
|
|
35
|
+
*/
|
|
36
|
+
import { useState } from "react";
|
|
37
|
+
import { Badge, Button, Flex } from "antd";
|
|
38
|
+
import { useT } from "@stapel/core";
|
|
39
|
+
import { spacing } from "@stapel/tokens";
|
|
40
|
+
import { useSearchState } from "../headless/SearchStateProvider.js";
|
|
41
|
+
import { SEARCH_I18N_KEYS } from "../i18n/keys.js";
|
|
42
|
+
import { geoSummaryFallback } from "./FacetPanelPane.js";
|
|
43
|
+
import { GeoSheet, SUMMARY_GEO_TEST_IDS } from "./geoSheet.js";
|
|
44
|
+
/** The row. Both ends are text buttons, so the row reads as a line of type
|
|
45
|
+
* rather than as two controls bolted onto a results page. */
|
|
46
|
+
const ROW = { width: "100%" };
|
|
47
|
+
/** Each end shrinks before it wraps; the location is the half that may
|
|
48
|
+
* ellipsis, because a long place name must not push "Filters" off screen. */
|
|
49
|
+
const LOCATION = {
|
|
50
|
+
minWidth: 0,
|
|
51
|
+
paddingInline: 0,
|
|
52
|
+
textAlign: "start",
|
|
53
|
+
};
|
|
54
|
+
/** A map pin in `currentColor` — the house convention: an inline monochrome
|
|
55
|
+
* SVG, no icon-font dependency, and it inherits the theme rather than carrying
|
|
56
|
+
* a colour. `aria-hidden` because the text beside it is the name. */
|
|
57
|
+
function PinGlyph() {
|
|
58
|
+
return (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round", role: "img", "aria-hidden": "true", children: [_jsx("path", { d: "M12 21s7-5.6 7-11a7 7 0 1 0-14 0c0 5.4 7 11 7 11z" }), _jsx("circle", { cx: "12", cy: "10", r: "2.6" })] }));
|
|
59
|
+
}
|
|
60
|
+
export function LocationSummaryLine(props) {
|
|
61
|
+
const t = useT();
|
|
62
|
+
const { state, activeFilters } = useSearchState();
|
|
63
|
+
const [open, setOpen] = useState(false);
|
|
64
|
+
const geo = state.geo;
|
|
65
|
+
// The radius is a NUMBER this pair owns (`radius_km` in the URL), so unlike
|
|
66
|
+
// the place's name it can be stated without asking anyone. A bbox has no
|
|
67
|
+
// radius to state; a centre without one is "around here" and says nothing
|
|
68
|
+
// rather than inventing a default the server never applied.
|
|
69
|
+
const radius = geo !== undefined && geo.kind === "center" && geo.radiusKm !== undefined
|
|
70
|
+
? t(SEARCH_I18N_KEYS.geoRadiusKm, { km: geo.radiusKm })
|
|
71
|
+
: undefined;
|
|
72
|
+
const where = geo === undefined
|
|
73
|
+
? t(SEARCH_I18N_KEYS.geoEverywhere)
|
|
74
|
+
: (props.geoLabel ?? geoSummaryFallback(geo, t));
|
|
75
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Flex, { align: "center", justify: "space-between", gap: spacing[2], style: ROW, "data-testid": "search-location-summary", "data-geo": geo === undefined ? "off" : "on", children: [_jsxs(Button, { type: "link", style: LOCATION, icon: _jsx(PinGlyph, {}), "data-testid": "search-location-open", "data-analytics": "none", "data-analytics-reason": "opening the location sheet is a read, not a flow step", onClick: () => {
|
|
76
|
+
setOpen(true);
|
|
77
|
+
}, children: [where, radius !== undefined && (_jsxs("span", { "data-testid": "search-location-radius", children: [" · ", radius] }))] }), _jsx(Badge, { count: activeFilters, size: "small", "data-testid": "search-location-filters-badge", children: _jsx(Button, { type: "link", style: { paddingInline: 0 }, "data-testid": "search-location-filters", "data-active": activeFilters > 0 ? "true" : "false", "data-analytics": "none", "data-analytics-reason": "opening the filter sheet is a read, not a flow step", onClick: props.onOpenAll, children: t(SEARCH_I18N_KEYS.filtersAll) }) })] }), _jsx(GeoSheet, { open: open, onClose: () => {
|
|
78
|
+
setOpen(false);
|
|
79
|
+
}, testIds: SUMMARY_GEO_TEST_IDS, ...(props.renderGeoFilter !== undefined
|
|
80
|
+
? { renderGeoFilter: props.renderGeoFilter }
|
|
81
|
+
: {}), ...(props.geoLabel !== undefined ? { geoLabel: props.geoLabel } : {}) })] }));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=LocationSummaryLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocationSummaryLine.js","sourceRoot":"","sources":["../../src/default/LocationSummaryLine.tsx"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,25 @@ export interface SearchPageProps extends ThemeModeProp, ParseSearchStateOptions
|
|
|
67
67
|
* sense that matters and not a decoration bolted on top.
|
|
68
68
|
*/
|
|
69
69
|
readonly filtersHeader?: ReactNode;
|
|
70
|
+
/**
|
|
71
|
+
* The row ABOVE the chips and the results — where `<LocationSummaryLine>`
|
|
72
|
+
* goes on the phone SERP.
|
|
73
|
+
*
|
|
74
|
+
* A NEW slot rather than a reuse, and the existing four were each checked
|
|
75
|
+
* first: `filtersHeader` is inside the filter panel (it is a filter, and on
|
|
76
|
+
* a phone it is behind the sheet, which is precisely where a location
|
|
77
|
+
* summary must NOT be); `breadcrumb` renders in the right place but names a
|
|
78
|
+
* walk up the CATEGORY tree, and a host wanting a trail AND a location row
|
|
79
|
+
* would have to choose; `resultsHeading` and the pane's `toolbar` are inside
|
|
80
|
+
* the results pane, below the chips. Nothing sat between "the search box"
|
|
81
|
+
* and "the filters", and that gap is exactly the ref's location row.
|
|
82
|
+
*
|
|
83
|
+
* It is rendered in the page's vertical stack, so it spans the full width in
|
|
84
|
+
* BOTH layouts — above the chip row on a phone, above the two columns on a
|
|
85
|
+
* desktop. That is deliberate: whatever states where a search is looking
|
|
86
|
+
* describes the whole page, not the results column of it.
|
|
87
|
+
*/
|
|
88
|
+
readonly resultsHeader?: ReactNode;
|
|
70
89
|
/** What this surface calls its result list. See
|
|
71
90
|
* {@link SearchResultsPaneProps.heading}. */
|
|
72
91
|
readonly resultsHeading?: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchPage.d.ts","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SearchPage.d.ts","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
13
13
|
* The seams a storefront fills: `renderCard` (a `<ListingCard>`),
|
|
14
14
|
* `categoryFeatures` (from categories-react, for facet labels and range rows),
|
|
15
15
|
* `renderCategoryFilter` / `renderGeoFilter` (controls other pairs own),
|
|
16
|
-
* `footer` (the container's own chrome), `filtersHeader` and
|
|
17
|
-
* None of them is optional behaviour in disguise — every one
|
|
18
|
-
* default or a visible placeholder.
|
|
16
|
+
* `footer` (the container's own chrome), `filtersHeader`, `resultsHeader` and
|
|
17
|
+
* `resultsHeading`. None of them is optional behaviour in disguise — every one
|
|
18
|
+
* has a working default or a visible placeholder.
|
|
19
19
|
*
|
|
20
20
|
* ── The screen could not start a search ───────────────────────────────────
|
|
21
21
|
*
|
|
@@ -195,7 +195,7 @@ function SearchPageBody(props) {
|
|
|
195
195
|
: {}), ...(props.degradationNotice !== undefined
|
|
196
196
|
? { degradationNotice: props.degradationNotice }
|
|
197
197
|
: {}) }));
|
|
198
|
-
return (_jsxs(Flex, { vertical: true, gap: spacing[4], "data-testid": "search-page", "data-filters": showFilters ? "on" : "off", "data-filters-layout": layout, children: [props.searchBox !== false && _jsx(SearchBox, {}), props.breadcrumb !== undefined && (_jsx("div", { "data-testid": "search-breadcrumb", children: props.breadcrumb })), _jsx(UrlIssueNotice, {}), showFilters && layout === "sheet" ? (_jsxs(_Fragment, { children: [_jsx(FilterChips, { onOpenAll: () => {
|
|
198
|
+
return (_jsxs(Flex, { vertical: true, gap: spacing[4], "data-testid": "search-page", "data-filters": showFilters ? "on" : "off", "data-filters-layout": layout, children: [props.searchBox !== false && _jsx(SearchBox, {}), props.breadcrumb !== undefined && (_jsx("div", { "data-testid": "search-breadcrumb", children: props.breadcrumb })), _jsx(UrlIssueNotice, {}), props.resultsHeader !== undefined && (_jsx("div", { "data-testid": "search-results-header", children: props.resultsHeader })), showFilters && layout === "sheet" ? (_jsxs(_Fragment, { children: [_jsx(FilterChips, { onOpenAll: () => {
|
|
199
199
|
setSheetOpen(true);
|
|
200
200
|
}, ...(categoryFeatures !== undefined ? { categoryFeatures } : {}), ...(locale !== undefined ? { locale } : {}), ...(props.renderGeoFilter !== undefined
|
|
201
201
|
? { renderGeoFilter: props.renderGeoFilter }
|
|
@@ -206,7 +206,7 @@ function SearchPageBody(props) {
|
|
|
206
206
|
}, children: applyLabel }), children: panel }), results] })) : showFilters ? (_jsxs(Flex, { align: "flex-start", gap: spacing[5], "data-testid": "search-page-columns", children: [_jsx("div", { style: RAIL, children: panel }), _jsx("div", { style: RESULTS_COLUMN, children: results })] })) : (results)] }));
|
|
207
207
|
}
|
|
208
208
|
export function SearchPage(props) {
|
|
209
|
-
const { adapter, renderCard, categoryFeatures, locale, searchBox, languages, renderCategoryFilter, renderGeoFilter, geoLabel, defaultGeo, footer, filtersHeader, resultsHeading, degradationNotice, filtersLayout, defaultFiltersOpen, pageSize, breadcrumb, views, defaultView, onViewChange, resultsAction, resultsHeadingLevel, mode, ...parseOptions } = props;
|
|
210
|
-
return (_jsx(SkinTheme, { surface: "base", ...(mode !== undefined ? { mode } : {}), children: _jsx(SearchStateProvider, { adapter: adapter, defaultGeo: defaultGeo, ...parseOptions, children: _jsx(SearchPageBody, { ...(renderCard !== undefined ? { renderCard } : {}), ...(categoryFeatures !== undefined ? { categoryFeatures } : {}), ...(locale !== undefined ? { locale } : {}), ...(searchBox !== undefined ? { searchBox } : {}), ...(languages !== undefined ? { languages } : {}), ...(renderCategoryFilter !== undefined ? { renderCategoryFilter } : {}), ...(renderGeoFilter !== undefined ? { renderGeoFilter } : {}), ...(geoLabel !== undefined ? { geoLabel } : {}), ...(footer !== undefined ? { footer } : {}), ...(filtersHeader !== undefined ? { filtersHeader } : {}), ...(resultsHeading !== undefined ? { resultsHeading } : {}), ...(degradationNotice !== undefined ? { degradationNotice } : {}), ...(filtersLayout !== undefined ? { filtersLayout } : {}), ...(defaultFiltersOpen !== undefined ? { defaultFiltersOpen } : {}), ...(pageSize !== undefined ? { pageSize } : {}), ...(breadcrumb !== undefined ? { breadcrumb } : {}), ...(views !== undefined ? { views } : {}), ...(defaultView !== undefined ? { defaultView } : {}), ...(onViewChange !== undefined ? { onViewChange } : {}), ...(resultsAction !== undefined ? { resultsAction } : {}), ...(resultsHeadingLevel !== undefined ? { resultsHeadingLevel } : {}) }) }) }));
|
|
209
|
+
const { adapter, renderCard, categoryFeatures, locale, searchBox, languages, renderCategoryFilter, renderGeoFilter, geoLabel, defaultGeo, footer, filtersHeader, resultsHeader, resultsHeading, degradationNotice, filtersLayout, defaultFiltersOpen, pageSize, breadcrumb, views, defaultView, onViewChange, resultsAction, resultsHeadingLevel, mode, ...parseOptions } = props;
|
|
210
|
+
return (_jsx(SkinTheme, { surface: "base", ...(mode !== undefined ? { mode } : {}), children: _jsx(SearchStateProvider, { adapter: adapter, defaultGeo: defaultGeo, ...parseOptions, children: _jsx(SearchPageBody, { ...(renderCard !== undefined ? { renderCard } : {}), ...(categoryFeatures !== undefined ? { categoryFeatures } : {}), ...(locale !== undefined ? { locale } : {}), ...(searchBox !== undefined ? { searchBox } : {}), ...(languages !== undefined ? { languages } : {}), ...(renderCategoryFilter !== undefined ? { renderCategoryFilter } : {}), ...(renderGeoFilter !== undefined ? { renderGeoFilter } : {}), ...(geoLabel !== undefined ? { geoLabel } : {}), ...(footer !== undefined ? { footer } : {}), ...(filtersHeader !== undefined ? { filtersHeader } : {}), ...(resultsHeader !== undefined ? { resultsHeader } : {}), ...(resultsHeading !== undefined ? { resultsHeading } : {}), ...(degradationNotice !== undefined ? { degradationNotice } : {}), ...(filtersLayout !== undefined ? { filtersLayout } : {}), ...(defaultFiltersOpen !== undefined ? { defaultFiltersOpen } : {}), ...(pageSize !== undefined ? { pageSize } : {}), ...(breadcrumb !== undefined ? { breadcrumb } : {}), ...(views !== undefined ? { views } : {}), ...(defaultView !== undefined ? { defaultView } : {}), ...(onViewChange !== undefined ? { onViewChange } : {}), ...(resultsAction !== undefined ? { resultsAction } : {}), ...(resultsHeadingLevel !== undefined ? { resultsHeadingLevel } : {}) }) }) }));
|
|
211
211
|
}
|
|
212
212
|
//# sourceMappingURL=SearchPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchPage.js","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIhF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAMrD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;;;;;;;;;;;;GAaG;AACH,MAAM,IAAI,GAAkB;IAC1B,IAAI,EAAE,OAAO,MAAM,CAAC,kBAAkB,CAAC,IAAI;IAC3C,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,MAAM;IACjB,kBAAkB,EAAE,SAAS;IAC7B,uEAAuE;IACvE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;CAC5B,CAAC;AAEF;iDACiD;AACjD,MAAM,cAAc,GAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchPage.js","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The LOCATION sheet — one implementation, two doors.
|
|
3
|
+
*
|
|
4
|
+
* `<FilterChips>`'s geo chip opened it and `<LocationSummaryLine>` opens it
|
|
5
|
+
* too: on the ref's SERP both controls say where the search is centred, one
|
|
6
|
+
* on the summary row and one in the chip strip, and a person tapping either
|
|
7
|
+
* must land in the same place. Two copies of a bottom sheet is two places for
|
|
8
|
+
* "clear the location" to behave differently, so the sheet is a component and
|
|
9
|
+
* the two surfaces are two `open` flags on it.
|
|
10
|
+
*
|
|
11
|
+
* ── What the sheet can do without a geocoder, and what it cannot ───────────
|
|
12
|
+
*
|
|
13
|
+
* SETTING a centre needs a map and a place-name lookup, which belong to
|
|
14
|
+
* `geo-react` and to the deployment: that is `renderGeoFilter`, and when it is
|
|
15
|
+
* unfilled the gap is NAMED (`SlotPlaceholder`) rather than left as a blank
|
|
16
|
+
* area under the sheet's title. ADJUSTING or CLEARING a location the URL
|
|
17
|
+
* already carries needs neither — `lat`/`lon`/`radius_km` are numbers this
|
|
18
|
+
* pair owns — which is why the sheet still opens usefully on a shared link
|
|
19
|
+
* with no slot wired.
|
|
20
|
+
*
|
|
21
|
+
* NAMING the place is a third thing and it is the host's: this package holds
|
|
22
|
+
* two coordinates and has no way to turn them into "Berlin Mitte", so it
|
|
23
|
+
* prints the name it was handed (`geoLabel`) or says that a place is chosen —
|
|
24
|
+
* never the numbers. `test/geo.test.tsx` asserts no digit of the point reaches
|
|
25
|
+
* the DOM, on either surface.
|
|
26
|
+
*/
|
|
27
|
+
import type { ReactElement, ReactNode } from "react";
|
|
28
|
+
import type { GeoFilterSlotProps } from "./FacetPanelPane.js";
|
|
29
|
+
/** The test ids a surface gives its own copy of the sheet — the chip row and
|
|
30
|
+
* the summary line each keep the names their tests already know. */
|
|
31
|
+
export interface GeoSheetTestIds {
|
|
32
|
+
readonly sheet: string;
|
|
33
|
+
readonly apply: string;
|
|
34
|
+
readonly slot: string;
|
|
35
|
+
readonly summary: string;
|
|
36
|
+
readonly clear: string;
|
|
37
|
+
}
|
|
38
|
+
/** The chip row's door. These names predate the split and are what
|
|
39
|
+
* `test/geo.test.tsx` already asks for, so they travel with the sheet rather
|
|
40
|
+
* than being renamed by a refactor nobody asked to observe. */
|
|
41
|
+
export declare const CHIP_GEO_TEST_IDS: GeoSheetTestIds;
|
|
42
|
+
/** The summary line's door — a different set, so a page holding both rows
|
|
43
|
+
* never hands a test two elements under one name. */
|
|
44
|
+
export declare const SUMMARY_GEO_TEST_IDS: GeoSheetTestIds;
|
|
45
|
+
export interface GeoSheetProps {
|
|
46
|
+
readonly open: boolean;
|
|
47
|
+
readonly onClose: () => void;
|
|
48
|
+
readonly renderGeoFilter?: (slot: GeoFilterSlotProps) => ReactNode;
|
|
49
|
+
readonly geoLabel?: ReactNode;
|
|
50
|
+
readonly testIds: GeoSheetTestIds;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* "Show 25 results", not "Show results".
|
|
54
|
+
*
|
|
55
|
+
* The results are BEHIND this sheet, so the button that closes it is the only
|
|
56
|
+
* place a person learns what their choice did. When the engine cannot say how
|
|
57
|
+
* many there are it says nothing rather than a number it made up.
|
|
58
|
+
*/
|
|
59
|
+
export declare function useApplyLabel(): string;
|
|
60
|
+
export declare function GeoSheet(props: GeoSheetProps): ReactElement;
|
|
61
|
+
//# sourceMappingURL=geoSheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geoSheet.d.ts","sourceRoot":"","sources":["../../src/default/geoSheet.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;oEACoE;AACpE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;+DAE+D;AAC/D,eAAO,MAAM,iBAAiB,EAAE,eAM/B,CAAC;AAEF;qDACqD;AACrD,eAAO,MAAM,oBAAoB,EAAE,eAMlC,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAYtC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CA+D3D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Flex, Typography } from "antd";
|
|
3
|
+
import { SkinDialog } from "@stapel/tokens-antd/skin";
|
|
4
|
+
import { SlotPlaceholder, useT, useTPlural } from "@stapel/core";
|
|
5
|
+
import { spacing } from "@stapel/tokens";
|
|
6
|
+
import { useAppliedCount } from "../headless/useAppliedCount.js";
|
|
7
|
+
import { useSearchState } from "../headless/SearchStateProvider.js";
|
|
8
|
+
import { SEARCH_I18N_KEYS } from "../i18n/keys.js";
|
|
9
|
+
import { geoSummaryFallback } from "./FacetPanelPane.js";
|
|
10
|
+
/** The chip row's door. These names predate the split and are what
|
|
11
|
+
* `test/geo.test.tsx` already asks for, so they travel with the sheet rather
|
|
12
|
+
* than being renamed by a refactor nobody asked to observe. */
|
|
13
|
+
export const CHIP_GEO_TEST_IDS = {
|
|
14
|
+
sheet: "filter-chip-sheet-geo",
|
|
15
|
+
apply: "filter-chip-apply-geo",
|
|
16
|
+
slot: "search-chip-geo-slot",
|
|
17
|
+
summary: "search-chip-geo-summary",
|
|
18
|
+
clear: "search-chip-geo-clear",
|
|
19
|
+
};
|
|
20
|
+
/** The summary line's door — a different set, so a page holding both rows
|
|
21
|
+
* never hands a test two elements under one name. */
|
|
22
|
+
export const SUMMARY_GEO_TEST_IDS = {
|
|
23
|
+
sheet: "search-location-sheet",
|
|
24
|
+
apply: "search-location-apply",
|
|
25
|
+
slot: "search-location-slot",
|
|
26
|
+
summary: "search-location-sheet-summary",
|
|
27
|
+
clear: "search-location-clear",
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* "Show 25 results", not "Show results".
|
|
31
|
+
*
|
|
32
|
+
* The results are BEHIND this sheet, so the button that closes it is the only
|
|
33
|
+
* place a person learns what their choice did. When the engine cannot say how
|
|
34
|
+
* many there are it says nothing rather than a number it made up.
|
|
35
|
+
*/
|
|
36
|
+
export function useApplyLabel() {
|
|
37
|
+
const t = useT();
|
|
38
|
+
const tPlural = useTPlural();
|
|
39
|
+
const applied = useAppliedCount();
|
|
40
|
+
return applied.count === null || applied.kind === "unknown"
|
|
41
|
+
? t(SEARCH_I18N_KEYS.filtersApply)
|
|
42
|
+
: tPlural(applied.kind === "at_least"
|
|
43
|
+
? SEARCH_I18N_KEYS.filtersShowCountAtLeast
|
|
44
|
+
: SEARCH_I18N_KEYS.filtersShowCount, { count: applied.count });
|
|
45
|
+
}
|
|
46
|
+
export function GeoSheet(props) {
|
|
47
|
+
const t = useT();
|
|
48
|
+
const { state, setGeo } = useSearchState();
|
|
49
|
+
const applyLabel = useApplyLabel();
|
|
50
|
+
const geo = state.geo;
|
|
51
|
+
const summary = geo === undefined
|
|
52
|
+
? null
|
|
53
|
+
: (props.geoLabel ?? geoSummaryFallback(geo, t));
|
|
54
|
+
return (_jsx(SkinDialog, { open: props.open, onClose: props.onClose, title: t(SEARCH_I18N_KEYS.geoTitle), dismissLabel: t(SEARCH_I18N_KEYS.filtersDismiss), "data-testid": props.testIds.sheet, footer: _jsx(Button, { block: true, type: "primary", "data-testid": props.testIds.apply, "data-analytics": "none", "data-analytics-reason": "the filter is already applied; this closes the sheet", onClick: props.onClose, children: applyLabel }), children: _jsxs(Flex, { vertical: true, gap: spacing[3], children: [props.renderGeoFilter?.({
|
|
55
|
+
value: geo,
|
|
56
|
+
onChange: (next) => {
|
|
57
|
+
setGeo(next);
|
|
58
|
+
},
|
|
59
|
+
}) ?? (_jsx(SlotPlaceholder, { name: "renderGeoFilter", "data-testid": props.testIds.slot })), geo !== undefined && (_jsxs(_Fragment, { children: [_jsx(Typography.Text, { type: "secondary", "data-testid": props.testIds.summary, children: summary }), _jsx(Button, { style: { alignSelf: "flex-start" }, "data-testid": props.testIds.clear, "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
|
|
60
|
+
setGeo(null);
|
|
61
|
+
}, children: t(SEARCH_I18N_KEYS.geoClear) })] }))] }) }));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=geoSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geoSheet.js","sourceRoot":"","sources":["../../src/default/geoSheet.tsx"],"names":[],"mappings":"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"}
|
package/dist/default/index.d.ts
CHANGED
|
@@ -43,6 +43,8 @@ export { SearchResultsPane, RESULTS_MAX_WIDTH } from "./SearchResultsPane.js";
|
|
|
43
43
|
export type { SearchResultsPaneProps, SearchResultsRenderer, } from "./SearchResultsPane.js";
|
|
44
44
|
export { FilterChips, CHIP_ROW_CLASS, CHIP_ROW_STYLE_HREF, chipRowCss } from "./FilterChips.js";
|
|
45
45
|
export type { FilterChipsProps } from "./FilterChips.js";
|
|
46
|
+
export { LocationSummaryLine } from "./LocationSummaryLine.js";
|
|
47
|
+
export type { LocationSummaryLineProps } from "./LocationSummaryLine.js";
|
|
46
48
|
export { FacetGroupControl, facetGroupShape, facetOptionNodes, FACET_VISIBLE_OPTIONS, } from "./FacetGroupControl.js";
|
|
47
49
|
export type { FacetGroupControlProps, FacetGroupShape, FacetOptionNode, } from "./FacetGroupControl.js";
|
|
48
50
|
export { FacetPanelPane } from "./FacetPanelPane.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChG,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACtF,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAG7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EACV,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChG,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACtF,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAG7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EACV,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/default/index.js
CHANGED
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
export { SearchPage } from "./SearchPage.js";
|
|
42
42
|
export { SearchResultsPane, RESULTS_MAX_WIDTH } from "./SearchResultsPane.js";
|
|
43
43
|
export { FilterChips, CHIP_ROW_CLASS, CHIP_ROW_STYLE_HREF, chipRowCss } from "./FilterChips.js";
|
|
44
|
+
export { LocationSummaryLine } from "./LocationSummaryLine.js";
|
|
44
45
|
export { FacetGroupControl, facetGroupShape, facetOptionNodes, FACET_VISIBLE_OPTIONS, } from "./FacetGroupControl.js";
|
|
45
46
|
export { FacetPanelPane } from "./FacetPanelPane.js";
|
|
46
47
|
export { RankingDisclosurePane, RANKING_MAX_WIDTH } from "./RankingDisclosurePane.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,+EAA+E;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAM9E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGtF,+EAA+E;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAK3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,+EAA+E;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAM9E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGtF,+EAA+E;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAK3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|