diff --git a/img/test/logo.png b/img/test/logo.png
new file mode 100644
index 00000000000..fc44b0a3796
Binary files /dev/null and b/img/test/logo.png differ
diff --git a/ts/features/messages/components/MessageDetail/MessageDetailHeader.tsx b/ts/features/messages/components/MessageDetail/MessageDetailHeader.tsx
index 849cf89df7c..ae3acb5fb8a 100644
--- a/ts/features/messages/components/MessageDetail/MessageDetailHeader.tsx
+++ b/ts/features/messages/components/MessageDetail/MessageDetailHeader.tsx
@@ -1,9 +1,16 @@
-import { Divider, H3, LabelSmall, VSpacer } from "@pagopa/io-app-design-system";
import React, { PropsWithChildren } from "react";
-import { StyleSheet, View } from "react-native";
+import {
+ ContentWrapper,
+ Divider,
+ H3,
+ LabelSmall,
+ VSpacer
+} from "@pagopa/io-app-design-system";
import { localeDateFormat } from "../../../../utils/locale";
import I18n from "../../../../i18n";
import { ServicePublic } from "../../../../../definitions/backend/ServicePublic";
+import { logosForService } from "../../../../utils/services";
+import { OrganizationHeader } from "./OrganizationHeader";
export type MessageDetailHeaderProps = PropsWithChildren<{
createdAt: Date;
@@ -12,12 +19,6 @@ export type MessageDetailHeaderProps = PropsWithChildren<{
service?: ServicePublic;
}>;
-const styles = StyleSheet.create({
- header: {
- paddingHorizontal: 24
- }
-});
-
const MessageHeaderContent = ({
subject,
createdAt
@@ -36,13 +37,24 @@ const MessageHeaderContent = ({
export const MessageDetailHeader = ({
children,
+ service,
...rest
}: MessageDetailHeaderProps) => (
-
+
{children}
- {/* TODO: Add MessageHeaderService */}
-
+ {service && (
+ <>
+ {/* TODO: update logoUri when MultiImage component will be available in DS */}
+
+
+ >
+ )}
+
);
diff --git a/ts/features/messages/components/MessageDetail/OrganizationHeader.tsx b/ts/features/messages/components/MessageDetail/OrganizationHeader.tsx
new file mode 100644
index 00000000000..43537c53909
--- /dev/null
+++ b/ts/features/messages/components/MessageDetail/OrganizationHeader.tsx
@@ -0,0 +1,49 @@
+import React from "react";
+import { ImageURISource, StyleSheet, View } from "react-native";
+import {
+ Avatar,
+ IOSpacingScale,
+ IOStyles,
+ LabelSmall
+} from "@pagopa/io-app-design-system";
+
+export type OrganizationHeaderProps = {
+ organizationName: string;
+ serviceName: string;
+ logoUri: ImageURISource;
+};
+
+const ITEM_PADDING_VERTICAL: IOSpacingScale = 6;
+const AVATAR_MARGIN_LEFT: IOSpacingScale = 16;
+
+const styles = StyleSheet.create({
+ item: {
+ flexDirection: "row",
+ alignItems: "center",
+ justifyContent: "space-between",
+ paddingVertical: ITEM_PADDING_VERTICAL
+ },
+ itemAvatar: {
+ marginLeft: AVATAR_MARGIN_LEFT
+ }
+});
+
+export const OrganizationHeader = ({
+ logoUri,
+ organizationName,
+ serviceName
+}: OrganizationHeaderProps) => (
+
+
+
+ {organizationName}
+
+
+ {serviceName}
+
+
+
+
+
+
+);
diff --git a/ts/features/messages/components/MessageDetail/__tests__/MessageDetailHeader.test.tsx b/ts/features/messages/components/MessageDetail/__tests__/MessageDetailHeader.test.tsx
index 5539b0d3fdc..145c99ef552 100644
--- a/ts/features/messages/components/MessageDetail/__tests__/MessageDetailHeader.test.tsx
+++ b/ts/features/messages/components/MessageDetail/__tests__/MessageDetailHeader.test.tsx
@@ -26,10 +26,22 @@ describe("MessageDetailHeader component", () => {
const component = render(
);
expect(component.toJSON()).toMatchSnapshot();
});
+
+ it("should render the organization info when the service is defined", () => {
+ const component = render(
+
+ );
+ expect(component.queryByText(service.organization_name)).not.toBeNull();
+ expect(component.queryByText(service.service_name)).not.toBeNull();
+ });
});
diff --git a/ts/features/messages/components/MessageDetail/__tests__/OrganizationHeader.test.tsx b/ts/features/messages/components/MessageDetail/__tests__/OrganizationHeader.test.tsx
new file mode 100644
index 00000000000..7517d68fb94
--- /dev/null
+++ b/ts/features/messages/components/MessageDetail/__tests__/OrganizationHeader.test.tsx
@@ -0,0 +1,16 @@
+import React from "react";
+import { render } from "@testing-library/react-native";
+import { OrganizationHeader } from "../OrganizationHeader";
+
+describe("OrganizationHeader component", () => {
+ it("should match the snapshot", () => {
+ const component = render(
+
+ );
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+});
diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailHeader.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailHeader.test.tsx.snap
index d1597d22480..434badfbbc3 100644
--- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailHeader.test.tsx.snap
+++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailHeader.test.tsx.snap
@@ -92,6 +92,137 @@ exports[`MessageDetailHeader component should match the snapshot with all props
}
}
/>
+
+
+
+ Organization foo
+
+
+ health
+
+
+
+
+
+
+
+
+
`;
diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/OrganizationHeader.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/OrganizationHeader.test.tsx.snap
new file mode 100644
index 00000000000..8ccc1da6e7c
--- /dev/null
+++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/OrganizationHeader.test.tsx.snap
@@ -0,0 +1,127 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`OrganizationHeader component should match the snapshot 1`] = `
+
+
+
+ #### organization_name ####
+
+
+ #### service name ####
+
+
+
+
+
+
+
+
+`;
diff --git a/ts/features/pn/screens/MessageDetailsScreen.tsx b/ts/features/pn/screens/MessageDetailsScreen.tsx
index cc4ff8e8dbe..dc68816b0b1 100644
--- a/ts/features/pn/screens/MessageDetailsScreen.tsx
+++ b/ts/features/pn/screens/MessageDetailsScreen.tsx
@@ -71,7 +71,7 @@ export const MessageDetailsScreen = () => {
dispatch(cancelQueuedPaymentUpdates());
dispatch(cancelPaymentStatusTracking());
navigation.goBack();
- }, []);
+ }, [dispatch, navigation]);
useHeaderSecondLevel({
title: "",
diff --git a/ts/features/pn/screens/__test__/__snapshots__/MessageDetailsScreen.test.tsx.snap b/ts/features/pn/screens/__test__/__snapshots__/MessageDetailsScreen.test.tsx.snap
index 9a3f4a76a2f..4323d0c8345 100644
--- a/ts/features/pn/screens/__test__/__snapshots__/MessageDetailsScreen.test.tsx.snap
+++ b/ts/features/pn/screens/__test__/__snapshots__/MessageDetailsScreen.test.tsx.snap
@@ -782,6 +782,137 @@ exports[`MessageDetailsScreen should match the snapshot when everything went fin
}
}
/>
+
+
+
+ Ċentru tas-Saħħa
+
+
+ health
+
+
+
+
+
+
+
+
+