Skip to content

Commit

Permalink
Improved clear filters for prices
Browse files Browse the repository at this point in the history
  • Loading branch information
mmoreram committed Mar 21, 2024
1 parent 5b558c4 commit 23a9aaa
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 12 deletions.
19 changes: 16 additions & 3 deletions dist/apisearch-ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -9980,7 +9980,6 @@ var ClearFiltersComponent = /** @class */ (function (_super) {
var filtersListClassName = props.classNames.filtersList;
var filterClassName = props.classNames.filter;
var containerTemplate = props.template.container;
var filterTemplate = props.template.filter;
var appliedFiltersFormatted = this.state.appliedFilters;
var individualFilterClear = null;
var isEmptyClass = (this.state.appliedFilters.length === 0) ? "empty" : "";
Expand All @@ -9993,14 +9992,28 @@ var ClearFiltersComponent = /** @class */ (function (_super) {
}); });
});
individualFilterClear = (0, preact_1.h)("ul", { className: "as-clearFilters__filtersList ".concat(filtersListClassName) }, values_1.map(function (filter) {
var _a, _b;
var isFilterPrice = filter.value.indexOf("..") >= 0;
var template = isFilterPrice
? _this.props.template.filter_price
: _this.props.template.filter;
if (isFilterPrice) {
filter.parts = filter.value.replace(/[\[\]]/, "").split("..");
if (((_a = filter.parts[0]) !== null && _a !== void 0 ? _a : "") === "0") {
template = _this.props.template.filter_price_only_to;
}
else if (((_b = filter.parts[1]) !== null && _b !== void 0 ? _b : "") === "") {
template = _this.props.template.filter_price_only_from;
}
}
return (0, preact_1.h)("li", { className: "as-clearFilters__filter ".concat(filterClassName), onClick: function () { return _this.handleIndividualClick(filter.filter, filter.value); } },
(0, preact_1.h)(Template_1["default"], { template: filterTemplate, dictionary: _this.props.dictionary, data: filter }));
(0, preact_1.h)(Template_1["default"], { template: template, dictionary: _this.props.dictionary, data: filter }));
}));
}
else if (props.showIndividualFilterClear) {
individualFilterClear = (0, preact_1.h)("ul", { className: "as-clearFilters__filtersList ".concat(filtersListClassName) }, appliedFiltersFormatted.map(function (filter) {
return (0, preact_1.h)("li", { className: "as-clearFilters__filter ".concat(filterClassName), onClick: function () { return _this.handleIndividualClick(filter.filter, null); } },
(0, preact_1.h)(Template_1["default"], { template: filterTemplate, dictionary: _this.props.dictionary, data: filter }));
(0, preact_1.h)(Template_1["default"], { template: _this.props.template.filter, dictionary: _this.props.dictionary, data: filter }));
}));
}
return (this.state.showClearFilters)
Expand Down
2 changes: 1 addition & 1 deletion dist/apisearch-ui.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/apisearch-ui.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/apisearch-ui.min.js.map

Large diffs are not rendered by default.

19 changes: 16 additions & 3 deletions lib/components/ClearFilters/ClearFiltersComponent.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ var ClearFiltersComponent = /** @class */ (function (_super) {
var filtersListClassName = props.classNames.filtersList;
var filterClassName = props.classNames.filter;
var containerTemplate = props.template.container;
var filterTemplate = props.template.filter;
var appliedFiltersFormatted = this.state.appliedFilters;
var individualFilterClear = null;
var isEmptyClass = (this.state.appliedFilters.length === 0) ? "empty" : "";
Expand All @@ -125,14 +124,28 @@ var ClearFiltersComponent = /** @class */ (function (_super) {
}); });
});
individualFilterClear = (0, preact_1.h)("ul", { className: "as-clearFilters__filtersList ".concat(filtersListClassName) }, values_1.map(function (filter) {
var _a, _b;
var isFilterPrice = filter.value.indexOf("..") >= 0;
var template = isFilterPrice
? _this.props.template.filter_price
: _this.props.template.filter;
if (isFilterPrice) {
filter.parts = filter.value.replace(/[\[\]]/, "").split("..");
if (((_a = filter.parts[0]) !== null && _a !== void 0 ? _a : "") === "0") {
template = _this.props.template.filter_price_only_to;
}
else if (((_b = filter.parts[1]) !== null && _b !== void 0 ? _b : "") === "") {
template = _this.props.template.filter_price_only_from;
}
}
return (0, preact_1.h)("li", { className: "as-clearFilters__filter ".concat(filterClassName), onClick: function () { return _this.handleIndividualClick(filter.filter, filter.value); } },
(0, preact_1.h)(Template_1["default"], { template: filterTemplate, dictionary: _this.props.dictionary, data: filter }));
(0, preact_1.h)(Template_1["default"], { template: template, dictionary: _this.props.dictionary, data: filter }));
}));
}
else if (props.showIndividualFilterClear) {
individualFilterClear = (0, preact_1.h)("ul", { className: "as-clearFilters__filtersList ".concat(filtersListClassName) }, appliedFiltersFormatted.map(function (filter) {
return (0, preact_1.h)("li", { className: "as-clearFilters__filter ".concat(filterClassName), onClick: function () { return _this.handleIndividualClick(filter.filter, null); } },
(0, preact_1.h)(Template_1["default"], { template: filterTemplate, dictionary: _this.props.dictionary, data: filter }));
(0, preact_1.h)(Template_1["default"], { template: _this.props.template.filter, dictionary: _this.props.dictionary, data: filter }));
}));
}
return (this.state.showClearFilters)
Expand Down
20 changes: 17 additions & 3 deletions src/components/ClearFilters/ClearFiltersComponent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,6 @@ class ClearFiltersComponent extends Component<ClearFiltersProps, ClearFiltersSta
const filterClassName = props.classNames.filter;

const containerTemplate = props.template.container;
const filterTemplate = props.template.filter;
const appliedFiltersFormatted = this.state.appliedFilters;
let individualFilterClear = null;
const isEmptyClass = (this.state.appliedFilters.length === 0) ? "empty" : "";
Expand All @@ -135,10 +134,25 @@ class ClearFiltersComponent extends Component<ClearFiltersProps, ClearFiltersSta

individualFilterClear = <ul className={`as-clearFilters__filtersList ${filtersListClassName}`}>
{values.map((filter) => {
const isFilterPrice = filter.value.indexOf("..") >= 0;

let template = isFilterPrice
? this.props.template.filter_price
: this.props.template.filter;

if (isFilterPrice) {
filter.parts = filter.value.replace(/[\[\]]/, "").split("..");
if ((filter.parts[0] ?? "") === "0") {
template = this.props.template.filter_price_only_to;
} else if ((filter.parts[1] ?? "") === "") {
template = this.props.template.filter_price_only_from;
}
}

return <li className={`as-clearFilters__filter ${filterClassName}`}
onClick={() => this.handleIndividualClick(filter.filter, filter.value)}>
<Template
template={filterTemplate}
template={template}
dictionary={this.props.dictionary}
data={filter}
/>
Expand All @@ -153,7 +167,7 @@ class ClearFiltersComponent extends Component<ClearFiltersProps, ClearFiltersSta
return <li className={`as-clearFilters__filter ${filterClassName}`}
onClick={() => this.handleIndividualClick(filter.filter, null)}>
<Template
template={filterTemplate}
template={this.props.template.filter}
dictionary={this.props.dictionary}
data={filter}
/>
Expand Down
3 changes: 3 additions & 0 deletions src/components/ClearFilters/ClearFiltersProps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ export interface ClearFiltersProps {
template: {
container: string,
filter: string,
filter_price: string,
filter_price_only_from: string,
filter_price_only_to: string,
};
environmentId?: string;
repository?: Repository;
Expand Down

0 comments on commit 23a9aaa

Please sign in to comment.