Files
houston-fe/src/Pages/TeamRevamp/constants.ts
2024-03-13 21:16:31 +05:30

197 lines
4.8 KiB
TypeScript

import { createURL } from '@src/services/globalUtils';
import { ActionType, AppState, Member } from './types';
const URL_PREFIX = createURL('/houston');
export const FETCH_TEAM_DATA = `${URL_PREFIX}/teams`;
export const FETCH_ALL_BOTS_DATA = `${URL_PREFIX}/bots`;
export const CREATE_TEAM = `${URL_PREFIX}/teams-v2/add`;
export const ADD_MEMBER = `${URL_PREFIX}/teams/members`;
export const FETCH_SINGLE_TEAM_DATA = (payload: string): string => {
return `${URL_PREFIX}/teams-v2/${payload}`;
};
export const UPDATE_TEAM_DATA = (): string => {
return `${URL_PREFIX}/teams-v2`;
};
export const REMOVE_TEAM_MEMBER = (teamId: string, userId: string): string => {
return `${URL_PREFIX}/teams-v2/${teamId}/members/${userId}`;
};
export const MAKE_MANAGER = (teamId: string, userId: string): string => {
return `${URL_PREFIX}/teams-v2/${teamId}/manager/${userId}`;
};
export const regularExpression = /^[a-zA-Z][a-zA-Z0-9_ -]{1,48}[a-zA-Z0-9]$/;
export const validEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
export const emailRegularExpression = /^[a-zA-Z.]+@navi\.com$/;
export const DEFAULT_SEVERITY = {
label: 'Sev-3',
value: '4',
};
export const actionTypes = {
SET_OPEN_DIALOG: 'SET_OPEN_DIALOG',
SET_OPEN_MODAL: 'SET_OPEN_MODAL',
SET_EMAIL_IDS: 'SET_EMAIL_IDS',
SET_SEVERITY_ID: 'SET_SEVERITY_ID',
SET_SELECTED_MEMBER: 'SET_SELECTED_MEMBER',
SET_HOVERED: 'SET_HOVERED',
SET_SLACK_CHANNEL_ID: 'SET_SLACK_CHANNEL_ID',
SET_ONCALL: 'SET_ONCALL',
SET_PSEC_ONCALL: 'SET_PSEC_ONCALL',
SET_INPUT: 'SET_INPUT',
SET_PSEC_INPUT: 'SET_PSEC_INPUT',
SET_OPEN_ONCALL: 'SET_OPEN_ONCALL',
SET_PSEC_OPEN_ONCALL: 'SET_PSEC_OPEN_ONCALL',
SET_TEAM_NAME: 'SET_TEAM_NAME',
SET_TEAM_NAME_ERROR: 'SET_TEAM_NAME_ERROR',
SET_EMAIL_ERROR: 'SET_EMAIL_ERROR',
SET_EMAIL: 'SET_EMAIL',
SET_CLEAR_MODAL: 'SET_CLEAR_MODAL',
SET_ADD_MEMBER_ERROR: 'SET_ADD_MEMBER_ERROR',
};
export const DEFAULT_SEVERITY_ID = 4;
export const initialState: AppState = {
openDialog: false,
openModal: false,
emailIds: '',
severityId: DEFAULT_SEVERITY_ID,
selectedMember: undefined,
hovered: {
ishovered: false,
id: '',
},
slackChannelId: '',
oncall: {
label: '',
value: '',
},
psecOncall: {
label: '',
value: '',
},
input: '',
psecInput: '',
openOnCall: false,
openPsecOnCall: false,
teamName: '',
teamNameError: '',
emailError: '',
email: '',
clearModal: false,
addMemberError: '',
};
export const reducer = (state: AppState, action: ActionType): AppState => {
switch (action.type) {
case actionTypes.SET_OPEN_DIALOG:
return {
...state,
openDialog: action.payload,
};
case actionTypes.SET_OPEN_MODAL:
return {
...state,
openModal: action.payload,
};
case actionTypes.SET_EMAIL_IDS:
return {
...state,
emailIds: action.payload,
};
case actionTypes.SET_SEVERITY_ID:
return {
...state,
severityId: parseInt(action.payload),
};
case actionTypes.SET_SELECTED_MEMBER:
return {
...state,
selectedMember: action.payload,
};
case actionTypes.SET_HOVERED:
return {
...state,
hovered: {
...state.hovered,
...action.payload,
},
};
case actionTypes.SET_SLACK_CHANNEL_ID:
return {
...state,
slackChannelId: action.payload,
};
case actionTypes.SET_ONCALL:
return {
...state,
oncall: action.payload,
};
case actionTypes.SET_PSEC_ONCALL:
return {
...state,
psecOncall: action.payload,
};
case actionTypes.SET_INPUT:
return {
...state,
input: action.payload,
};
case actionTypes.SET_PSEC_INPUT:
return {
...state,
psecInput: action.payload,
};
case actionTypes.SET_OPEN_ONCALL:
return {
...state,
openOnCall: action.payload,
};
case actionTypes.SET_PSEC_OPEN_ONCALL:
return {
...state,
openPsecOnCall: action.payload,
};
case actionTypes.SET_TEAM_NAME:
return {
...state,
teamName: action.payload,
};
case actionTypes.SET_TEAM_NAME_ERROR:
return {
...state,
teamNameError: action.payload,
};
case actionTypes.SET_EMAIL_ERROR:
return {
...state,
emailError: action.payload,
};
case actionTypes.SET_EMAIL:
return {
...state,
email: action.payload,
};
case actionTypes.SET_CLEAR_MODAL:
return {
...state,
teamName: '',
email: '',
teamNameError: '',
emailError: '',
};
case actionTypes.SET_ADD_MEMBER_ERROR:
return {
...state,
addMemberError: action.payload,
};
default:
return state;
}
};