diff --git a/apps/judicial-system/api/src/app/modules/defendant/dto/updateDefendant.input.ts b/apps/judicial-system/api/src/app/modules/defendant/dto/updateDefendant.input.ts index 376ade4c40d1..8b179cee53a5 100644 --- a/apps/judicial-system/api/src/app/modules/defendant/dto/updateDefendant.input.ts +++ b/apps/judicial-system/api/src/app/modules/defendant/dto/updateDefendant.input.ts @@ -82,4 +82,9 @@ export class UpdateDefendantInput { @IsOptional() @Field(() => ServiceRequirement, { nullable: true }) readonly serviceRequirement?: ServiceRequirement + + @Allow() + @IsOptional() + @Field(() => String, { nullable: true }) + readonly verdictViewDate?: string } diff --git a/apps/judicial-system/api/src/app/modules/defendant/models/defendant.model.ts b/apps/judicial-system/api/src/app/modules/defendant/models/defendant.model.ts index b2e8e5981883..be22c0f5a29c 100644 --- a/apps/judicial-system/api/src/app/modules/defendant/models/defendant.model.ts +++ b/apps/judicial-system/api/src/app/modules/defendant/models/defendant.model.ts @@ -62,4 +62,7 @@ export class Defendant { @Field(() => ServiceRequirement, { nullable: true }) readonly serviceRequirement?: ServiceRequirement + + @Field(() => String, { nullable: true }) + readonly verdictViewDate?: string } diff --git a/apps/judicial-system/backend/migrations/20240514111505-update-defendant.js b/apps/judicial-system/backend/migrations/20240514111505-update-defendant.js new file mode 100644 index 000000000000..d9be034fbb91 --- /dev/null +++ b/apps/judicial-system/backend/migrations/20240514111505-update-defendant.js @@ -0,0 +1,22 @@ +'use strict' + +module.exports = { + up: (queryInterface, Sequelize) => { + return queryInterface.sequelize.transaction((t) => + queryInterface.addColumn( + 'defendant', + 'verdict_view_date', + { type: Sequelize.DATE, allowNull: true }, + { transaction: t }, + ), + ) + }, + + down: (queryInterface) => { + return queryInterface.sequelize.transaction((t) => + queryInterface.removeColumn('defendant', 'verdict_view_date', { + transaction: t, + }), + ) + }, +} diff --git a/apps/judicial-system/backend/src/app/modules/defendant/defendant.controller.ts b/apps/judicial-system/backend/src/app/modules/defendant/defendant.controller.ts index 71922368ffe9..c7f86416e0f0 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/defendant.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/defendant.controller.ts @@ -27,6 +27,7 @@ import { districtCourtRegistrarRule, prosecutorRepresentativeRule, prosecutorRule, + publicProsecutorStaffRule, } from '../../guards' import { Case, CaseExistsGuard, CaseWriteGuard, CurrentCase } from '../case' import { CreateDefendantDto } from './dto/createDefendant.dto' @@ -71,6 +72,7 @@ export class DefendantController { districtCourtJudgeRule, districtCourtRegistrarRule, districtCourtAssistantRule, + publicProsecutorStaffRule, ) @Patch(':defendantId') @ApiOkResponse({ diff --git a/apps/judicial-system/backend/src/app/modules/defendant/dto/updateDefendant.dto.ts b/apps/judicial-system/backend/src/app/modules/defendant/dto/updateDefendant.dto.ts index 3de0c18afb4e..922535aab96e 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/dto/updateDefendant.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/dto/updateDefendant.dto.ts @@ -73,4 +73,9 @@ export class UpdateDefendantDto { @IsEnum(ServiceRequirement) @ApiPropertyOptional({ enum: ServiceRequirement }) readonly serviceRequirement?: ServiceRequirement + + @IsOptional() + @IsString() + @ApiPropertyOptional() + readonly verdictViewDate?: string } diff --git a/apps/judicial-system/backend/src/app/modules/defendant/models/defendant.model.ts b/apps/judicial-system/backend/src/app/modules/defendant/models/defendant.model.ts index bc3f2e426cef..053d19ff4bf2 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/models/defendant.model.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/models/defendant.model.ts @@ -113,4 +113,11 @@ export class Defendant extends Model { }) @ApiProperty({ enum: ServiceRequirement }) serviceRequirement?: ServiceRequirement + + @Column({ + type: DataType.STRING, + allowNull: true, + }) + @ApiProperty() + verdictViewDate?: string } diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/updateRolesRules.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/updateRolesRules.spec.ts index 3daff84becec..4cf550c25287 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/updateRolesRules.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/updateRolesRules.spec.ts @@ -4,6 +4,7 @@ import { districtCourtRegistrarRule, prosecutorRepresentativeRule, prosecutorRule, + publicProsecutorStaffRule, } from '../../../../guards' import { DefendantController } from '../../defendant.controller' @@ -19,11 +20,12 @@ describe('DefendantController - Update rules', () => { }) it('should give permission to roles', () => { - expect(rules).toHaveLength(5) + expect(rules).toHaveLength(6) expect(rules).toContain(prosecutorRule) expect(rules).toContain(prosecutorRepresentativeRule) expect(rules).toContain(districtCourtJudgeRule) expect(rules).toContain(districtCourtRegistrarRule) expect(rules).toContain(districtCourtAssistantRule) + expect(rules).toContain(publicProsecutorStaffRule) }) }) diff --git a/apps/judicial-system/web/src/components/FormProvider/case.graphql b/apps/judicial-system/web/src/components/FormProvider/case.graphql index ffd4abefce09..dd224b72299b 100644 --- a/apps/judicial-system/web/src/components/FormProvider/case.graphql +++ b/apps/judicial-system/web/src/components/FormProvider/case.graphql @@ -23,6 +23,7 @@ query Case($input: CaseQueryInput!) { defendantWaivesRightToCounsel defendantPlea serviceRequirement + verdictViewDate } defenderName defenderNationalId diff --git a/apps/judicial-system/web/src/components/FormProvider/limitedAccessCase.graphql b/apps/judicial-system/web/src/components/FormProvider/limitedAccessCase.graphql index df1d08288313..e54f9fba060c 100644 --- a/apps/judicial-system/web/src/components/FormProvider/limitedAccessCase.graphql +++ b/apps/judicial-system/web/src/components/FormProvider/limitedAccessCase.graphql @@ -28,6 +28,7 @@ query LimitedAccessCase($input: CaseQueryInput!) { defenderEmail defenderPhoneNumber defendantWaivesRightToCounsel + verdictViewDate } defenderName defenderNationalId diff --git a/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.css.ts b/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.css.ts new file mode 100644 index 000000000000..08d63afd7637 --- /dev/null +++ b/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.css.ts @@ -0,0 +1,25 @@ +import { style, styleVariants } from '@vanilla-extract/css' + +import { theme } from '@island.is/island-ui/theme' + +const baseGridRow = style({ + display: 'grid', + gridGap: theme.spacing[1], + marginBottom: theme.spacing[2], +}) + +export const gridRow = styleVariants({ + withButton: [baseGridRow, { gridTemplateColumns: '5fr 1fr' }], + withoutButton: [baseGridRow, { gridTemplateColumns: '1fr' }], +}) + +export const infoCardDefendant = style({ + display: 'flex', + flexDirection: 'column', + + '@media': { + [`screen and (min-width: ${theme.breakpoints.lg}px)`]: { + display: 'block', + }, + }, +}) diff --git a/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.strings.ts b/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.strings.ts new file mode 100644 index 000000000000..f89786a9be07 --- /dev/null +++ b/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.strings.ts @@ -0,0 +1,26 @@ +import { defineMessages } from 'react-intl' + +export const strings = defineMessages({ + appealExpirationDate: { + id: 'judicial.system.core:info_card.defendant_info.appeal_expiration_date', + defaultMessage: 'Áfrýjunarfrestur dómfellda er til {appealExpirationDate}', + description: 'Notað til að birta áfrýjunarfrest dómfellda í ákæru.', + }, + appealDateExpired: { + id: 'judicial.system.core:info_card.defendant_info.appeal_date_expired', + defaultMessage: 'Áfrýjunarfrestur dómfellda var til {appealExpirationDate}', + description: + 'Notað til að láta vita að áfrýjunarfrestur í ákæru er útrunninn.', + }, + appealDateNotBegun: { + id: 'judicial.system.core:info_card.defendant_info.appeal_date_not_begun', + defaultMessage: 'Áfrýjunarfrestur dómfellda er ekki hafinn', + description: + 'Notaður til að láta vita að áfrýjunarfrestur dómfellda er ekki hafinn.', + }, + defender: { + id: 'judicial.system.core:info_card.defendant_info.defender', + defaultMessage: 'Verjandi', + description: 'Notað til að birta titil á verjanda í ákæru.', + }, +}) diff --git a/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.tsx b/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.tsx new file mode 100644 index 000000000000..8d5b7e4ea0a2 --- /dev/null +++ b/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.tsx @@ -0,0 +1,126 @@ +import React, { FC, PropsWithChildren } from 'react' +import { useIntl } from 'react-intl' + +import { + Box, + Button, + IconMapIcon, + LinkV2, + Text, +} from '@island.is/island-ui/core' +import { formatDate, formatDOB } from '@island.is/judicial-system/formatters' +import { Defendant } from '@island.is/judicial-system-web/src/graphql/schema' + +import { strings } from './DefendantInfo.strings' +import { link } from '../../MarkdownWrapper/MarkdownWrapper.css' +import * as styles from './DefendantInfo.css' + +export type DefendantInfoActionButton = { + text: string + onClick: (defendant: Defendant) => void + icon?: IconMapIcon + isDisabled: (defendant: Defendant) => boolean +} + +interface DefendantInfoProps { + defendant: Defendant + displayDefenderInfo: boolean + defendantInfoActionButton?: DefendantInfoActionButton +} + +export const DefendantInfo: FC> = ( + props, +) => { + const { defendant, displayDefenderInfo, defendantInfoActionButton } = props + const { formatMessage } = useIntl() + + const getAppealExpirationInfo = (viewDate?: string) => { + if (!viewDate) { + return formatMessage(strings.appealDateNotBegun) + } + + const today = new Date() + const expiryDate = new Date(viewDate) + expiryDate.setDate(expiryDate.getDate() + 28) + + const message = + today < expiryDate + ? strings.appealExpirationDate + : strings.appealDateExpired + + return formatMessage(message, { + appealExpirationDate: formatDate(expiryDate, 'P'), + }) + } + + return ( +
+
+ + + {defendant.name} + {defendant.nationalId && + `, ${formatDOB(defendant.nationalId, defendant.noNationalId)}`} + + + {defendant.citizenship && `, (${defendant.citizenship})`} + {defendant.address && `, ${defendant.address}`} + + + +
+ + {getAppealExpirationInfo(defendant.verdictViewDate ?? '')} + +
+ + {defendant.defenderName && displayDefenderInfo && ( + + {`${formatMessage(strings.defender)}: ${ + defendant.defenderName + }`} + {defendant.defenderEmail && ( + <> + {`, `} + + {defendant.defenderEmail} + + + )} + + )} +
+ + {defendantInfoActionButton && ( + + + + )} +
+ ) +} diff --git a/apps/judicial-system/web/src/components/InfoCard/InfoCard.css.ts b/apps/judicial-system/web/src/components/InfoCard/InfoCard.css.ts index 4934805dfc9a..e06105c24bec 100644 --- a/apps/judicial-system/web/src/components/InfoCard/InfoCard.css.ts +++ b/apps/judicial-system/web/src/components/InfoCard/InfoCard.css.ts @@ -35,14 +35,3 @@ export const infoCardAdditionalSectionContainer = style({ }, }, }) - -export const infoCardDefendant = style({ - display: 'flex', - flexDirection: 'column', - - '@media': { - [`screen and (min-width: ${theme.breakpoints.lg}px)`]: { - display: 'block', - }, - }, -}) diff --git a/apps/judicial-system/web/src/components/InfoCard/InfoCard.tsx b/apps/judicial-system/web/src/components/InfoCard/InfoCard.tsx index 60c646643ccf..0dd85e15c729 100644 --- a/apps/judicial-system/web/src/components/InfoCard/InfoCard.tsx +++ b/apps/judicial-system/web/src/components/InfoCard/InfoCard.tsx @@ -2,12 +2,15 @@ import React from 'react' import { useIntl } from 'react-intl' import { Box, Icon, IconMapIcon, LinkV2, Text } from '@island.is/island-ui/core' -import { formatDOB } from '@island.is/judicial-system/formatters' import { Defendant, SessionArrangements, } from '@island.is/judicial-system-web/src/graphql/schema' +import { + DefendantInfo, + DefendantInfoActionButton, +} from './DefendantInfo/DefendantInfo' import { strings } from './InfoCard.strings' import { link } from '../MarkdownWrapper/MarkdownWrapper.css' import * as styles from './InfoCard.css' @@ -31,7 +34,11 @@ interface DataSection { interface Props { courtOfAppealData?: Array<{ title: string; value?: React.ReactNode }> data: Array<{ title: string; value?: React.ReactNode }> - defendants?: { title: string; items: Defendant[] } + defendants?: { + title: string + items: Defendant[] + defendantInfoActionButton?: DefendantInfoActionButton + } defenders?: Defender[] icon?: IconMapIcon additionalDataSections?: DataSection[] @@ -108,35 +115,20 @@ const InfoCard: React.FC = (props) => { {defendants && ( <> {defendants.title} - + {defendants.items.map((defendant) => ( - - - {`${defendant.name}, `} - - {defendant.nationalId - ? `${formatDOB( - defendant.nationalId, - defendant.noNationalId, - )}, ` - : ''} - - - {defendant.citizenship && ` (${defendant.citizenship}), `} - - {defendant.address && ( - {`${defendant.address}`} - )} - - + ))} diff --git a/apps/judicial-system/web/src/components/InfoCard/InfoCardClosedIndictment.tsx b/apps/judicial-system/web/src/components/InfoCard/InfoCardClosedIndictment.tsx index f6e2a4ceb7cc..5ef6e72d749a 100644 --- a/apps/judicial-system/web/src/components/InfoCard/InfoCardClosedIndictment.tsx +++ b/apps/judicial-system/web/src/components/InfoCard/InfoCardClosedIndictment.tsx @@ -9,23 +9,19 @@ import { import { core } from '@island.is/judicial-system-web/messages' import { FormContext } from '../FormProvider/FormProvider' +import { DefendantInfoActionButton } from './DefendantInfo/DefendantInfo' import InfoCard, { NameAndEmail } from './InfoCard' import { strings } from './InfoCardIndictment.strings' -const InfoCardClosedIndictment: React.FC< - React.PropsWithChildren -> = () => { +export interface Props { + defendantInfoActionButton?: DefendantInfoActionButton +} + +const InfoCardClosedIndictment: React.FC = (props) => { const { workingCase } = useContext(FormContext) const { formatMessage } = useIntl() - const defenders = workingCase.defendants?.map((defendant) => { - return { - name: defendant.defenderName || '', - defenderNationalId: defendant.defenderNationalId || '', - sessionArrangement: undefined, - email: defendant.defenderEmail || '', - phoneNumber: defendant.defenderPhoneNumber || '', - } - }) + + const { defendantInfoActionButton } = props return ( 1 - ? formatMessage(core.indictmentDefendants) - : formatMessage(core.indictmentDefendant, { + ? formatMessage(strings.indictmentDefendants) + : formatMessage(strings.indictmentDefendant, { gender: workingCase.defendants[0].gender, }), ), items: workingCase.defendants, + defendantInfoActionButton: defendantInfoActionButton, } : undefined } - defenders={defenders} additionalDataSections={[ ...(workingCase.indictmentReviewer?.name ? [ diff --git a/apps/judicial-system/web/src/components/InfoCard/InfoCardIndictment.strings.ts b/apps/judicial-system/web/src/components/InfoCard/InfoCardIndictment.strings.ts index 85316ab91f90..8043cf5d8f8b 100644 --- a/apps/judicial-system/web/src/components/InfoCard/InfoCardIndictment.strings.ts +++ b/apps/judicial-system/web/src/components/InfoCard/InfoCardIndictment.strings.ts @@ -22,4 +22,14 @@ export const strings = defineMessages({ defaultMessage: 'Yfirlestur', description: 'Notaður sem titill á "yfirlestur" hluta af yfirliti ákæru.', }, + indictmentDefendant: { + id: 'judicial.system.core:info_card_indictment.indictment_defendant', + defaultMessage: 'Dómfelldi', + description: 'Notaður sem titill á "dómfelldi" hluta af yfirliti ákæru.', + }, + indictmentDefendants: { + id: 'judicial.system.core:info_card_indictment.indictment_defendants', + defaultMessage: 'Dómfelldu', + description: 'Notaður sem titill á "dómfelldu" hluta af yfirliti ákæru.', + }, }) diff --git a/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/Overview/Overview.strings.ts b/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/Overview/Overview.strings.ts index bda2b5b7b75f..bc0a5d574c5f 100644 --- a/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/Overview/Overview.strings.ts +++ b/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/Overview/Overview.strings.ts @@ -38,4 +38,25 @@ export const strings = defineMessages({ 'Máli {caseNumber} hefur verið úthlutað til yfirlestrar á {reviewer}.', description: 'Notaður sem texti í tilkynningaglugga um yfirlesara.', }, + displayVerdict: { + id: 'judicial.system.core:public_prosecutor.indictments.overview.display_verdict', + defaultMessage: 'Dómur birtur', + description: 'Notaður sem texti á takka til að birta dóm.', + }, + defendantViewsVerdictModalTitle: { + id: 'judicial.system.core:public_prosecutor.indictments.overview.defendant_views_verdict_modal_title', + defaultMessage: 'Hefur dómur verið birtur dómfellda?', + description: 'Notaður sem titill á tilkynningaglugga um birtan dóm.', + }, + defendantViewsVerdictModalText: { + id: 'judicial.system.core:public_prosecutor.indictments.overview.defendant_views_verdict_modal_text', + defaultMessage: + 'Dómfelldi fær fjögurra vikna frest til að áfrýja dómi eftir að birting hans hefur verið staðfest.', + description: 'Notaður sem texti í tilkynningaglugga um birtan dóm.', + }, + defendantViewsVerdictModalPrimaryButtonText: { + id: 'judicial.system.core:public_prosecutor.indictments.overview.defendant_views_verdict_modal_primary_button_text', + defaultMessage: 'Staðfesta', + description: 'Notaður sem texti á takka til að birta dóm.', + }, }) diff --git a/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/Overview/Overview.tsx b/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/Overview/Overview.tsx index c8447d6ea830..eed2faf3d792 100644 --- a/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/Overview/Overview.tsx +++ b/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/Overview/Overview.tsx @@ -1,16 +1,11 @@ -import React, { - useCallback, - useContext, - useEffect, - useMemo, - useState, -} from 'react' +import React, { useCallback, useContext, useMemo, useState } from 'react' import { useIntl } from 'react-intl' import { useRouter } from 'next/router' import { Box, Option, Select, Text } from '@island.is/island-ui/core' import * as constants from '@island.is/judicial-system/consts' import { formatDate } from '@island.is/judicial-system/formatters' +import { isCompletedCase } from '@island.is/judicial-system/types' import { core, titles } from '@island.is/judicial-system-web/messages' import { BlueBox, @@ -30,31 +25,32 @@ import { UserContext, } from '@island.is/judicial-system-web/src/components' import { useProsecutorSelectionUsersQuery } from '@island.is/judicial-system-web/src/components/ProsecutorSelection/prosecutorSelectionUsers.generated' -import { useCase } from '@island.is/judicial-system-web/src/utils/hooks' +import { Defendant } from '@island.is/judicial-system-web/src/graphql/schema' +import { + formatDateForServer, + useCase, + useDefendants, +} from '@island.is/judicial-system-web/src/utils/hooks' import { strings } from './Overview.strings' +type VisibleModal = 'REVIEWER_ASSIGNED' | 'DEFENDANT_VIEWS_VERDICT' export const Overview = () => { const router = useRouter() - const { workingCase, isLoadingWorkingCase, caseNotFound } = - useContext(FormContext) const { formatMessage: fm } = useIntl() const { user } = useContext(UserContext) const { updateCase } = useCase() + const { workingCase, isLoadingWorkingCase, caseNotFound, setWorkingCase } = + useContext(FormContext) const [selectedIndictmentReviewer, setSelectedIndictmentReviewer] = useState | null>() - const [modalVisible, setModalVisible] = useState(false) - - useEffect(() => { - setSelectedIndictmentReviewer( - workingCase.indictmentReviewer?.id - ? { - label: workingCase.indictmentReviewer?.name ?? '', - value: workingCase.indictmentReviewer?.id, - } - : null, - ) - }, [workingCase.id, workingCase.indictmentReviewer]) + const [modalVisible, setModalVisible] = useState() + const lawsBroken = useIndictmentsLawsBroken(workingCase) + + const displayReviewerChoices = workingCase.indictmentReviewer === null + + const [selectedDefendant, setSelectedDefendant] = useState() + const { setAndSendDefendantToServer } = useDefendants() const assignReviewer = async () => { if (!selectedIndictmentReviewer) { @@ -67,10 +63,24 @@ export const Overview = () => { return } - setModalVisible(true) + setModalVisible('REVIEWER_ASSIGNED') } - const lawsBroken = useIndictmentsLawsBroken(workingCase) + const handleDefendantViewsVerdict = () => { + if (!selectedDefendant) { + return + } + + const updatedDefendant = { + caseId: workingCase.id, + defendantId: selectedDefendant.id, + verdictViewDate: formatDateForServer(new Date()), + } + + setAndSendDefendantToServer(updatedDefendant, setWorkingCase) + + setModalVisible(undefined) + } const handleNavigationTo = useCallback( (destination: string) => router.push(`${destination}/${workingCase.id}`), @@ -117,7 +127,23 @@ export const Overview = () => { {fm(strings.title)} - + { + setSelectedDefendant(defendant) + setModalVisible('DEFENDANT_VIEWS_VERDICT') + }, + icon: 'mailOpen', + isDisabled: (defendant) => + defendant.verdictViewDate !== null, + } + : undefined + } + /> {lawsBroken.size > 0 && ( @@ -129,49 +155,53 @@ export const Overview = () => { )} - - - {fm(strings.reviewerSubtitle, { - indictmentAppealDeadline: formatDate( - workingCase.indictmentAppealDeadline, - 'P', - ), - })} - - } - /> - - { + setSelectedIndictmentReviewer(value as Option) + }} + isDisabled={loading} + required + /> + + + )} - - - + {displayReviewerChoices && ( + + + + )} - {modalVisible && ( + {modalVisible === 'REVIEWER_ASSIGNED' && ( { onSecondaryButtonClick={() => router.push(constants.CASES_ROUTE)} /> )} + + {modalVisible === 'DEFENDANT_VIEWS_VERDICT' && ( + handleDefendantViewsVerdict()} + secondaryButtonText={fm(core.back)} + onSecondaryButtonClick={() => setModalVisible(undefined)} + /> + )} ) } diff --git a/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/ReviewDecision/ReviewDecision.css.ts b/apps/judicial-system/web/src/routes/PublicProsecutor/components/ReviewDecision/ReviewDecision.css.ts similarity index 100% rename from apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/ReviewDecision/ReviewDecision.css.ts rename to apps/judicial-system/web/src/routes/PublicProsecutor/components/ReviewDecision/ReviewDecision.css.ts diff --git a/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/ReviewDecision/ReviewDecision.strings.ts b/apps/judicial-system/web/src/routes/PublicProsecutor/components/ReviewDecision/ReviewDecision.strings.ts similarity index 100% rename from apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/ReviewDecision/ReviewDecision.strings.ts rename to apps/judicial-system/web/src/routes/PublicProsecutor/components/ReviewDecision/ReviewDecision.strings.ts diff --git a/apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/ReviewDecision/ReviewDecision.tsx b/apps/judicial-system/web/src/routes/PublicProsecutor/components/ReviewDecision/ReviewDecision.tsx similarity index 100% rename from apps/judicial-system/web/src/routes/PublicProsecutor/Indictments/ReviewDecision/ReviewDecision.tsx rename to apps/judicial-system/web/src/routes/PublicProsecutor/components/ReviewDecision/ReviewDecision.tsx diff --git a/apps/judicial-system/web/src/routes/Shared/IndictmentOverview/IndictmentOverview.tsx b/apps/judicial-system/web/src/routes/Shared/IndictmentOverview/IndictmentOverview.tsx index f47d9dfa8a36..c406f4e1ae4a 100644 --- a/apps/judicial-system/web/src/routes/Shared/IndictmentOverview/IndictmentOverview.tsx +++ b/apps/judicial-system/web/src/routes/Shared/IndictmentOverview/IndictmentOverview.tsx @@ -24,7 +24,7 @@ import { } from '@island.is/judicial-system-web/src/components' import { CaseState } from '@island.is/judicial-system-web/src/graphql/schema' -import { ReviewDecision } from '../../PublicProsecutor/Indictments/ReviewDecision/ReviewDecision' +import { ReviewDecision } from '../../PublicProsecutor/components/ReviewDecision/ReviewDecision' import { strings } from './IndictmentOverview.strings' const IndictmentOverview = () => {