Commit 02b0b69b authored by Kushal Pandya's avatar Kushal Pandya

Use `FilteredSearchTokenKeys` class directly for token handling

parent 916bc63c
const tokenKeys = [{ import FilteredSearchTokenKeys from '~/filtered_search/filtered_search_token_keys';
key: 'author',
type: 'string', const tokenKeys = [
param: 'username', {
symbol: '@', key: 'author',
icon: 'pencil', type: 'string',
tag: '@author', param: 'username',
}, { symbol: '@',
key: 'label', icon: 'pencil',
type: 'array', tag: '@author',
param: 'name[]', },
symbol: '~', {
icon: 'labels', key: 'label',
tag: '~label', type: 'array',
}]; param: 'name[]',
symbol: '~',
const alternativeTokenKeys = [{ icon: 'labels',
key: 'label', tag: '~label',
type: 'string', },
param: 'name', ];
symbol: '~',
}]; const alternativeTokenKeys = [
{
const tokenKeysWithAlternative = tokenKeys.concat(alternativeTokenKeys); key: 'label',
type: 'string',
const conditions = [{ param: 'name',
url: 'label_name[]=No+Label', symbol: '~',
tokenKey: 'label', },
value: 'none', ];
}];
const conditions = [
export default class FilteredSearchTokenKeysEpics { {
static get() { url: 'label_name[]=No+Label',
return tokenKeys; tokenKey: 'label',
} value: 'none',
},
static getKeys() { ];
return tokenKeys.map(i => i.key);
} const EpicsFilteredSearchTokenKeysEE = new FilteredSearchTokenKeys(
[...tokenKeys],
static getAlternatives() { alternativeTokenKeys,
return alternativeTokenKeys; [...conditions],
} );
static getConditions() { export default EpicsFilteredSearchTokenKeysEE;
return conditions;
}
static searchByKey(key) {
return tokenKeys.find(tokenKey => tokenKey.key === key) || null;
}
static searchBySymbol(symbol) {
return tokenKeys.find(tokenKey => tokenKey.symbol === symbol) || null;
}
static searchByKeyParam(keyParam) {
return tokenKeysWithAlternative.find((tokenKey) => {
let tokenKeyParam = tokenKey.key;
// Replace hyphen with underscore to compare keyParam with tokenKeyParam
// e.g. 'my-reaction' => 'my_reaction'
tokenKeyParam = tokenKeyParam.replace('-', '_');
if (tokenKey.param) {
tokenKeyParam += `_${tokenKey.param}`;
}
return keyParam === tokenKeyParam;
}) || null;
}
static searchByConditionUrl(url) {
return conditions.find(condition => condition.url === url) || null;
}
static searchByConditionKeyValue(key, value) {
return conditions
.find(condition => condition.tokenKey === key && condition.value === value) || null;
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment