45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
import {
|
|
WIDGET_TYPE_ASSIGNEES,
|
|
WIDGET_TYPE_HEALTH_STATUS,
|
|
WIDGET_TYPE_HIERARCHY,
|
|
WIDGET_TYPE_LABELS,
|
|
WIDGET_TYPE_MILESTONE,
|
|
WIDGET_TYPE_START_AND_DUE_DATE,
|
|
WIDGET_TYPE_WEIGHT,
|
|
} from './constants';
|
|
|
|
export const isAssigneesWidget = (widget) => widget.type === WIDGET_TYPE_ASSIGNEES;
|
|
|
|
export const isHealthStatusWidget = (widget) => widget.type === WIDGET_TYPE_HEALTH_STATUS;
|
|
|
|
export const isLabelsWidget = (widget) => widget.type === WIDGET_TYPE_LABELS;
|
|
|
|
export const isMilestoneWidget = (widget) => widget.type === WIDGET_TYPE_MILESTONE;
|
|
|
|
export const isStartAndDueDateWidget = (widget) => widget.type === WIDGET_TYPE_START_AND_DUE_DATE;
|
|
|
|
export const isWeightWidget = (widget) => widget.type === WIDGET_TYPE_WEIGHT;
|
|
|
|
export const findHierarchyWidgets = (widgets) =>
|
|
widgets?.find((widget) => widget.type === WIDGET_TYPE_HIERARCHY);
|
|
|
|
export const findHierarchyWidgetChildren = (workItem) =>
|
|
findHierarchyWidgets(workItem?.widgets)?.children?.nodes || [];
|
|
|
|
const autocompleteSourcesPath = (autocompleteType, fullPath, workItemIid) => {
|
|
return `${
|
|
gon.relative_url_root || ''
|
|
}/${fullPath}/-/autocomplete_sources/${autocompleteType}?type=WorkItem&type_id=${workItemIid}`;
|
|
};
|
|
|
|
export const autocompleteDataSources = (fullPath, iid) => ({
|
|
labels: autocompleteSourcesPath('labels', fullPath, iid),
|
|
members: autocompleteSourcesPath('members', fullPath, iid),
|
|
commands: autocompleteSourcesPath('commands', fullPath, iid),
|
|
});
|
|
|
|
export const markdownPreviewPath = (fullPath, iid) =>
|
|
`${
|
|
gon.relative_url_root || ''
|
|
}/${fullPath}/preview_markdown?target_type=WorkItem&target_id=${iid}`;
|