44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
import { isMatch } from 'lodash';
|
|
import { __, s__, sprintf } from '~/locale';
|
|
import { getDisplayName } from '../utils';
|
|
|
|
export const hasProjects = state => Boolean(state.projects) && state.projects.length > 0;
|
|
|
|
export const isProjectInvalid = (state, getters) =>
|
|
Boolean(state.selectedProject) &&
|
|
getters.hasProjects &&
|
|
!state.projects.some(project => isMatch(state.selectedProject, project));
|
|
|
|
export const dropdownLabel = (state, getters) => {
|
|
if (state.selectedProject !== null) {
|
|
return getDisplayName(state.selectedProject);
|
|
}
|
|
if (!getters.hasProjects) {
|
|
return s__('ErrorTracking|No projects available');
|
|
}
|
|
return s__('ErrorTracking|Select project');
|
|
};
|
|
|
|
export const invalidProjectLabel = state => {
|
|
if (state.selectedProject) {
|
|
return sprintf(
|
|
__('Project "%{name}" is no longer available. Select another project to continue.'),
|
|
{
|
|
name: state.selectedProject.name,
|
|
},
|
|
);
|
|
}
|
|
return '';
|
|
};
|
|
|
|
export const projectSelectionLabel = state => {
|
|
if (state.token) {
|
|
return s__(
|
|
"ErrorTracking|Click 'Connect' to re-establish the connection to Sentry and activate the dropdown.",
|
|
);
|
|
}
|
|
return s__('ErrorTracking|To enable project selection, enter a valid Auth Token');
|
|
};
|
|
|
|
// prevent babel-plugin-rewire from generating an invalid default during karma tests
|
|
export default () => {};
|