mirror of
https://github.com/prymitive/karma
synced 2026-05-09 03:36:44 +00:00
feat: replace opposing filter
This commit is contained in:
committed by
Łukasz Mierzwa
parent
9a6a5c1a50
commit
ef3a8a5a5c
@@ -22,9 +22,10 @@ const FilterInputLabel: FC<{
|
||||
// if filter is empty string then remove it
|
||||
if (val === "") {
|
||||
alertStore.filters.removeFilter(filter.raw);
|
||||
} else {
|
||||
// if not empty replace it
|
||||
alertStore.filters.replaceFilter(filter.raw, val);
|
||||
}
|
||||
// if not empty replace it
|
||||
alertStore.filters.replaceFilter(filter.raw, val);
|
||||
};
|
||||
|
||||
const cs = GetClassAndStyle(
|
||||
|
||||
@@ -38,15 +38,20 @@ const FilteringCounterBadge: FC<{
|
||||
(event: MouseEvent) => {
|
||||
// left click => apply foo=bar filter
|
||||
// left click + alt => apply foo!=bar filter
|
||||
const operator =
|
||||
event.altKey === true ? QueryOperators.NotEqual : QueryOperators.Equal;
|
||||
let operators = [QueryOperators.Equal, QueryOperators.NotEqual];
|
||||
if (event.altKey) {
|
||||
operators = operators.reverse();
|
||||
}
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
if (isAppend) {
|
||||
alertStore.filters.addFilter(FormatQuery(name, operator, value));
|
||||
alertStore.filters.replaceFilter(
|
||||
FormatQuery(name, operators[1], value),
|
||||
FormatQuery(name, operators[0], value)
|
||||
);
|
||||
} else {
|
||||
alertStore.filters.setFilters([FormatQuery(name, operator, value)]);
|
||||
alertStore.filters.setFilters([FormatQuery(name, operators[0], value)]);
|
||||
}
|
||||
},
|
||||
[alertStore.filters, name, value, isAppend]
|
||||
|
||||
@@ -27,10 +27,15 @@ const FilteringLabel: FC<{
|
||||
return;
|
||||
}
|
||||
|
||||
const operator =
|
||||
event.altKey === true ? QueryOperators.NotEqual : QueryOperators.Equal;
|
||||
let operators = [QueryOperators.Equal, QueryOperators.NotEqual];
|
||||
if (event.altKey) {
|
||||
operators = operators.reverse();
|
||||
}
|
||||
|
||||
alertStore.filters.addFilter(FormatQuery(name, operator, value));
|
||||
alertStore.filters.replaceFilter(
|
||||
FormatQuery(name, operators[1], value),
|
||||
FormatQuery(name, operators[0], value)
|
||||
);
|
||||
},
|
||||
[alertStore.filters, name, value]
|
||||
);
|
||||
|
||||
@@ -22,12 +22,17 @@ const LabelWithPercent: FC<{
|
||||
(event: MouseEvent) => {
|
||||
// left click => apply foo=bar filter
|
||||
// left click + alt => apply foo!=bar filter
|
||||
const operator =
|
||||
event.altKey === true ? QueryOperators.NotEqual : QueryOperators.Equal;
|
||||
let operators = [QueryOperators.Equal, QueryOperators.NotEqual];
|
||||
if (event.altKey) {
|
||||
operators = operators.reverse();
|
||||
}
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
alertStore.filters.addFilter(FormatQuery(name, operator, value));
|
||||
alertStore.filters.replaceFilter(
|
||||
FormatQuery(name, operators[1], value),
|
||||
FormatQuery(name, operators[0], value)
|
||||
);
|
||||
},
|
||||
[alertStore.filters, name, value]
|
||||
);
|
||||
|
||||
@@ -225,10 +225,10 @@ describe("AlertStore.filters", () => {
|
||||
expect(store.filters.values[0]).toMatchObject(NewUnappliedFilter("bar"));
|
||||
});
|
||||
|
||||
it("replaceFilter('foo', 'bar') should not replace anything if filter list is empty", () => {
|
||||
it("replaceFilter('foo', 'bar') should add 'bar' in empty list", () => {
|
||||
const store = new AlertStore([]);
|
||||
store.filters.replaceFilter("foo", "bar");
|
||||
expect(store.filters.values).toHaveLength(0);
|
||||
expect(store.filters.values).toHaveLength(1);
|
||||
});
|
||||
|
||||
it("replaceFilter('foo', 'new') should replace correct filter", () => {
|
||||
|
||||
@@ -249,6 +249,8 @@ class AlertStore {
|
||||
this.values[index] = NewUnappliedFilter(newRaw);
|
||||
UpdateLocationSearch({ q: this.values.map((f) => f.raw) });
|
||||
}
|
||||
} else {
|
||||
this.addFilter(newRaw);
|
||||
}
|
||||
},
|
||||
setFilters(raws: string[]) {
|
||||
|
||||
Reference in New Issue
Block a user