Skip to content

Commit

Permalink
legg til state for feil eier
Browse files Browse the repository at this point in the history
  • Loading branch information
moroministeren committed Nov 18, 2024
1 parent 344ea3e commit 97bb471
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 38 deletions.
12 changes: 6 additions & 6 deletions src/moduler/aktivitet/aktivitet-selector.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SerializedError } from '../../api/utils';
import { Status } from '../../createGenericSlice';
import { RootState } from '../../store';
import { selectErrors, selectFeil } from '../feilmelding/feil-selector';
import { selectErrors, selectSerialiedErrors } from '../feilmelding/feil-selector';
import {
flyttAktivitet,
hentAktivitet,
Expand All @@ -25,17 +25,17 @@ export const selectAktivitetFeilmeldinger = createSelector(
selectAktivitetStatus,
selectErrors,
(aktiviteterStatus, errors) => {
return aktiviteterStatus === Status.ERROR ? selectFeil(errors, hentAktivitet.rejected.type) : [];
return aktiviteterStatus === Status.ERROR ? selectSerialiedErrors(errors, hentAktivitet.rejected.type) : [];
},
);

export const selecteEndreAktivitetFeilmeldinger: (state: RootState) => SerializedError[] = createSelector(
selectErrors,
(errors) => {
const oppdaterError = selectFeil(errors, oppdaterAktivitet.rejected.type);
const oppdaterEtikettError = selectFeil(errors, oppdaterAktivitetEtikett.rejected.type);
const oppdaterStillingFraNavError = selectFeil(errors, oppdaterStillingFraNavSoknadsstatus.rejected.type);
const flyttAktivitetError = selectFeil(errors, flyttAktivitet.rejected.type);
const oppdaterError = selectSerialiedErrors(errors, oppdaterAktivitet.rejected.type);
const oppdaterEtikettError = selectSerialiedErrors(errors, oppdaterAktivitetEtikett.rejected.type);
const oppdaterStillingFraNavError = selectSerialiedErrors(errors, oppdaterStillingFraNavSoknadsstatus.rejected.type);
const flyttAktivitetError = selectSerialiedErrors(errors, flyttAktivitet.rejected.type);
return [...oppdaterError, ...oppdaterEtikettError, ...oppdaterStillingFraNavError, ...flyttAktivitetError];
},
);
Expand Down
13 changes: 7 additions & 6 deletions src/moduler/aktivitet/aktivitet-slice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
import { RootState } from '../../store';
import { createSelector } from 'reselect';
import { root } from 'postcss';
import { setErPåAnnenBrukersResssurs } from '../feilmelding/feil-slice';

type PerioderMedAktiviteter = {
id: string;
Expand Down Expand Up @@ -113,14 +114,14 @@ const aktivitetSlice = createSlice({
builder.addCase(hentAktivitet.fulfilled, (state, action) => {
const aktivitet = action.payload.data.aktivitet;
const eier = action.payload.data.eier;
const aktivitetIDer = selectAllOppfolgingsperioder(state).map ((periode) => {
selectAlleAktiviter(periode.aktiviteter).map((aktivitet) => {aktivitet.id})
}).flat()
if (!aktivitetIDer.has(aktivitet.id)) {
const aktivitetIDer = selectAllOppfolgingsperioder(state).map ((periode) =>
selectAlleAktiviter(periode.aktiviteter).map((aktivitet) => aktivitet.id)
).flat()

if (!aktivitetIDer.includes(aktivitet.id)) {
setErPåAnnenBrukersResssurs(eier.fnr)
}

selectAlleAktiviter(state).map((aktivitet) => {aktivitet.id}).has(aktivitet.id);
console.log('Setter eier på state', eier);
nyStateMedOppdatertAktivitet(state, aktivitet);
});
builder.addCase(lagNyAktivitet.fulfilled, (state, action) => {
Expand Down
4 changes: 2 additions & 2 deletions src/moduler/aktivitet/arena-aktivitet-selector.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Status } from '../../createGenericSlice';
import { RootState } from '../../store';
import { selectErrors, selectFeil } from '../feilmelding/feil-selector';
import { selectErrors, selectSerialiedErrors } from '../feilmelding/feil-selector';
import { hentArenaAktiviteter } from './arena-aktiviteter-slice';
import { createSelector } from 'reselect';
import { SerializedError } from '../../api/utils';
Expand All @@ -15,6 +15,6 @@ export const selectArenaFeilmeldinger: (state: RootState) => SerializedError[] =
selectArenaAktivitetStatus,
selectErrors,
(arenaAktivitetStatus, errors) => {
return arenaAktivitetStatus === Status.ERROR ? selectFeil(errors, hentArenaAktiviteter.rejected.type) : [];
return arenaAktivitetStatus === Status.ERROR ? selectSerialiedErrors(errors, hentArenaAktiviteter.rejected.type) : [];
},
);
8 changes: 5 additions & 3 deletions src/moduler/aktivitet/visning/AktivitetvisningContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import AktivitetvisningModal from './AktivitetvisningModal';
import { createSelector } from 'reselect';
import { setErPåAnnenBrukersResssurs } from '../../feilmelding/feil-slice';
import { selectSistVisteAktivitet } from '../aktivitetview-selector';
import { selectFeilEier } from '../../feilmelding/feil-selector';

const selectAvhengigheter = createSelector(
selectOppfolgingStatus,
Expand All @@ -39,11 +40,12 @@ const AktivitetvisningContainer = () => {

// TODO: IMplementer

const test = useSelector(selectSistVisteAktivitet);
console.log("sist vist aktivitet", test);


const erVeileder = useErVeileder();

const feilEier = erVeileder ? useSelector(selectFeilEier) !== undefined: false;
console.log("er feil eier? ", feilEier)

const valgtAktivitet = useSelector((state: RootState) =>
aktivitetId ? selectAktivitetMedId(state, aktivitetId) : undefined,
);
Expand Down
4 changes: 2 additions & 2 deletions src/moduler/dialog/dialog-selector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Status } from '../../createGenericSlice';
import { Dialog } from '../../datatypes/dialogTypes';
import { HistoriskOppfolgingsperiode } from '../../datatypes/oppfolgingTypes';
import { RootState } from '../../store';
import { selectErrors, selectFeil } from '../feilmelding/feil-selector';
import { selectErrors, selectSerialiedErrors } from '../feilmelding/feil-selector';
import { selectHistoriskPeriode } from '../filtrering/filter/filter-selector';
import { datoErIPeriode } from '../filtrering/filter/filter-utils';
import { selectForrigeHistoriskeSluttDato } from '../oppfolging-status/oppfolging-selector';
Expand Down Expand Up @@ -34,6 +34,6 @@ export const selectDialogFeilmeldinger: (state: RootState) => SerializedError[]
selectDialogerSlice,
selectErrors,
(dialogState, errors) => {
return dialogState.status === Status.ERROR ? selectFeil(errors, hentDialoger.rejected.type) : [];
return dialogState.status === Status.ERROR ? selectSerialiedErrors(errors, hentDialoger.rejected.type) : [];
},
);
31 changes: 17 additions & 14 deletions src/moduler/feilmelding/feil-selector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,15 @@ import { hentOppfolging } from '../oppfolging-status/oppfolging-slice';
import { createSelector } from 'reselect';
import { RootState } from '../../store';

export const selectFeil = (errors: RootState['data']['errors'], ...types: string[]): SerializedError[] => {
return Object.entries(errors)
export const selectSerialiedErrors = (feil: RootState['data']['errors'], ...types: string[]): SerializedError[] => {
return Object.entries(feil.serializedError)
.filter(([type, _]) => types.includes(type))
.map(([_, val]) => val);
};

export const selectFeilEier= (state: RootState): string | undefined =>
state.data.errors.feilEier;

export const selectErrors = (state: RootState) => state.data.errors;

const hovedsideFeil = [
Expand All @@ -38,49 +41,49 @@ const hovedsideFeil = [
flyttAktivitet.rejected.type,
];
export const selectHovedsideFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, ...hovedsideFeil);
return selectSerialiedErrors(errors, ...hovedsideFeil);
});

export const selectLagNyAktivitetFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, lagNyAktivitet.rejected.type);
return selectSerialiedErrors(errors, lagNyAktivitet.rejected.type);
});

export const selectOppdaterAktivitetStatusFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, flyttAktivitet.rejected.type);
return selectSerialiedErrors(errors, flyttAktivitet.rejected.type);
});

export const selectOppdaterAktivitetEtikettFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, oppdaterAktivitetEtikett.rejected.type);
return selectSerialiedErrors(errors, oppdaterAktivitetEtikett.rejected.type);
});

export const selectOppdaterStillingFraNavSoknadsstatusFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, oppdaterStillingFraNavSoknadsstatus.rejected.type);
return selectSerialiedErrors(errors, oppdaterStillingFraNavSoknadsstatus.rejected.type);
});

export const selectDeleCVFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, oppdaterCVSvar.rejected.type);
return selectSerialiedErrors(errors, oppdaterCVSvar.rejected.type);
});

export const selectSettAktivitetTilAvtaltFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, settAktivitetTilAvtalt.rejected.type);
return selectSerialiedErrors(errors, settAktivitetTilAvtalt.rejected.type);
});

export const selectCanPrint = createSelector(selectErrors, (errors) => {
return selectFeil(errors, hentAktiviteter.rejected.type, hentDialoger.rejected.type).length === 0;
return selectSerialiedErrors(errors, hentAktiviteter.rejected.type, hentDialoger.rejected.type).length === 0;
});

export const selectHentMalListeFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, hentMal.rejected.type, hentMalListe.rejected.type);
return selectSerialiedErrors(errors, hentMal.rejected.type, hentMalListe.rejected.type);
});

export const selectOppdaterMalFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, oppdaterMal.rejected.type);
return selectSerialiedErrors(errors, oppdaterMal.rejected.type);
});

export const selectPubliserReferatFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, publiserReferat.rejected.type);
return selectSerialiedErrors(errors, publiserReferat.rejected.type);
});

export const selectPubliserOgOppdaterReferatFeil = createSelector(selectErrors, (errors) => {
return selectFeil(errors, publiserReferat.rejected.type, oppdaterReferat.rejected.type);
return selectSerialiedErrors(errors, publiserReferat.rejected.type, oppdaterReferat.rejected.type);
});
13 changes: 8 additions & 5 deletions src/moduler/feilmelding/feil-slice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ import {
} from '../aktivitet/aktivitet-actions';
import { oppdaterMal } from '../mal/aktivitetsmal-slice';

type ErrorSliceType = Record<string, SerializedError>;
type FeilState = {
serializedError: Record<string, SerializedError>
feilEier: string | undefined
}

const dismissableErrors = [
flyttAktivitet.rejected.type,
Expand All @@ -42,27 +45,27 @@ const dismissableErrors = [

const errorSlice = createSlice({
name: 'feil',
initialState: {} as ErrorSliceType,
initialState: {} as FeilState,
reducers: {
setErPåAnnenBrukersResssurs: (state, payload: PayloadAction<string>) => {
console.log('Setter feil');
},
fjernDismissableErrors: (state) => {
dismissableErrors.forEach((type) => {
delete state[type];
delete state.serializedError[type];
});
},
},
extraReducers: (builder) => {
builder.addMatcher(
(action: AnyAction) => isAsyncThunkAction(action) && isRejected(action),
(state, action) => {
state[action.type] = { ...action.error, type: action.type };
state.serializedError[action.type] = { ...action.error, type: action.type };
},
);
builder.addMatcher(isAnyOf(isFulfilled, isPending), (state, action) => {
const type = action.type.replace('pending', 'rejected').replace('fulfilled', 'rejected');
delete state[type];
delete state.serializedError[type];
});
},
});
Expand Down

0 comments on commit 97bb471

Please sign in to comment.