Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
variables
/
custom
/
File Content:
adapter.ts
import { cloneDeep } from 'lodash'; import { dispatch } from '../../../store/store'; import { VariableAdapter } from '../adapters'; import { ALL_VARIABLE_TEXT } from '../constants'; import { optionPickerFactory } from '../pickers'; import { setOptionAsCurrent, setOptionFromUrl } from '../state/actions'; import { CustomVariableModel } from '../types'; import { containsVariable, isAllVariable, toKeyedVariableIdentifier } from '../utils'; import { CustomVariableEditor } from './CustomVariableEditor'; import { updateCustomVariableOptions } from './actions'; import { customVariableReducer, initialCustomVariableModelState } from './reducer'; export const createCustomVariableAdapter = (): VariableAdapter<CustomVariableModel> => { return { id: 'custom', description: 'Define variable values manually', name: 'Custom', initialState: initialCustomVariableModelState, reducer: customVariableReducer, picker: optionPickerFactory<CustomVariableModel>(), editor: CustomVariableEditor, dependsOn: (variable, variableToTest) => { return containsVariable(variable.query, variableToTest.name); }, setValue: async (variable, option, emitChanges = false) => { await dispatch(setOptionAsCurrent(toKeyedVariableIdentifier(variable), option, emitChanges)); }, setValueFromUrl: async (variable, urlValue) => { await dispatch(setOptionFromUrl(toKeyedVariableIdentifier(variable), urlValue)); }, updateOptions: async (variable) => { await dispatch(updateCustomVariableOptions(toKeyedVariableIdentifier(variable))); }, getSaveModel: (variable) => { const { index, id, state, global, rootStateKey, ...rest } = cloneDeep(variable); return rest; }, getValueForUrl: (variable) => { if (isAllVariable(variable)) { return ALL_VARIABLE_TEXT; } return variable.current.value; }, }; };
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
CustomVariableEditor.tsx
2394 bytes
0644
actions.test.ts
2268 bytes
0644
actions.ts
990 bytes
0644
adapter.ts
1905 bytes
0644
reducer.test.ts
9605 bytes
0644
reducer.ts
1914 bytes
0644
N4ST4R_ID | Naxtarrr