diff --git a/i18n/en.pot b/i18n/en.pot
index a23b4f8e7..b8ca7b5c5 100644
--- a/i18n/en.pot
+++ b/i18n/en.pot
@@ -5,8 +5,11 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"POT-Creation-Date: 2026-03-23T09:34:56.311Z\n"
-"PO-Revision-Date: 2026-03-23T09:34:56.312Z\n"
+"POT-Creation-Date: 2026-04-21T13:56:31.224Z\n"
+"PO-Revision-Date: 2026-04-21T13:56:31.225Z\n"
+
+msgid "Download data from this date"
+msgstr "Download data from this date"
msgid "view only"
msgstr "view only"
@@ -38,11 +41,6 @@ msgstr "Created {{time}} by {{author}}"
msgid "Created {{time}}"
msgstr "Created {{time}}"
-msgid "Viewed {{count}} times"
-msgid_plural "Viewed {{count}} times"
-msgstr[0] "Viewed 1 time"
-msgstr[1] "Viewed {{count}} times"
-
msgid "Notifications"
msgstr "Notifications"
@@ -535,6 +533,12 @@ msgstr "Could not post reply"
msgid "Post reply"
msgstr "Post reply"
+msgid "Click again to delete"
+msgstr "Click again to delete"
+
+msgid "Delete?"
+msgstr "Delete?"
+
msgid "Could not delete comment"
msgstr "Could not delete comment"
@@ -547,8 +551,11 @@ msgstr "Enter comment text"
msgid "Update"
msgstr "Update"
-msgid "Viewing interpretation: {{- visualisationName}}"
-msgstr "Viewing interpretation: {{- visualisationName}}"
+msgid "Viewing interpretation data from {{- interpretationDate}}"
+msgstr "Viewing interpretation data from {{- interpretationDate}}"
+
+msgid "Viewing interpretation data"
+msgstr "Viewing interpretation data"
msgid "Could not load interpretation"
msgstr "Could not load interpretation"
@@ -560,9 +567,6 @@ msgstr ""
"The interpretation couldn’t be displayed. Try again or contact your system "
"administrator."
-msgid "Hide interpretation"
-msgstr "Hide interpretation"
-
msgid "Write an interpretation"
msgstr "Write an interpretation"
@@ -587,14 +591,12 @@ msgstr "Could not load interpretations"
msgid "Reply"
msgstr "Reply"
-msgid "{{count}} replies"
-msgid_plural "{{count}} replies"
-msgstr[0] "{{count}} reply"
-msgstr[1] "{{count}} replies"
-
msgid "View replies"
msgstr "View replies"
+msgid "Open interpretation"
+msgstr "Open interpretation"
+
msgid "Unlike"
msgstr "Unlike"
@@ -771,21 +773,6 @@ msgstr "New line list"
msgid "Hide"
msgstr "Hide"
-msgid "{{count}} org units"
-msgid_plural "{{count}} org units"
-msgstr[0] "{{count}} org unit"
-msgstr[1] "{{count}} org units"
-
-msgid "{{count}} levels"
-msgid_plural "{{count}} levels"
-msgstr[0] "{{count}} level"
-msgstr[1] "{{count}} levels"
-
-msgid "{{count}} groups"
-msgid_plural "{{count}} groups"
-msgstr[0] "{{count}} group"
-msgstr[1] "{{count}} groups"
-
msgid "Selected: {{commaSeparatedListOfOrganisationUnits}}"
msgstr "Selected: {{commaSeparatedListOfOrganisationUnits}}"
@@ -1492,10 +1479,5 @@ msgstr "Base"
msgid "Axis {{axisId}}"
msgstr "Axis {{axisId}}"
-msgid "{{count}} items"
-msgid_plural "{{count}} items"
-msgstr[0] "{{count}} item"
-msgstr[1] "{{count}} items"
-
msgid "Reset zoom"
msgstr "Reset zoom"
diff --git a/src/components/Interpretations/common/Message/MessageIconButton.js b/src/components/Interpretations/common/Message/MessageIconButton.js
index f851eb1ad..44c6ffb31 100644
--- a/src/components/Interpretations/common/Message/MessageIconButton.js
+++ b/src/components/Interpretations/common/Message/MessageIconButton.js
@@ -2,6 +2,64 @@ import { Tooltip, colors, theme } from '@dhis2/ui'
import cx from 'classnames'
import PropTypes from 'prop-types'
import React from 'react'
+import { CONFIRM_TIMEOUT_MS } from '../useConfirmClick.js'
+
+const ProgressIcon = ({
+ duration = CONFIRM_TIMEOUT_MS,
+ size = 16,
+ strokeWidth = 3,
+}) => {
+ const r = (size - strokeWidth) / 2
+ const center = size / 2
+
+ return (
+ <>
+
+
+
+ >
+ )
+}
+
+ProgressIcon.propTypes = {
+ duration: PropTypes.number,
+ size: PropTypes.number,
+ strokeWidth: PropTypes.number,
+}
const MessageIconButton = ({
tooltipContent,
@@ -14,115 +72,116 @@ const MessageIconButton = ({
dataTest,
viewOnly,
}) => (
-
- {({ ref, onMouseOver, onMouseOut }) => (
-
-
+ {label !== undefined && label !== null && (
+ {label}
)}
-
+
+
)
MessageIconButton.propTypes = {
diff --git a/src/components/Interpretations/common/useConfirmClick.js b/src/components/Interpretations/common/useConfirmClick.js
index 21e98360b..e043d025b 100644
--- a/src/components/Interpretations/common/useConfirmClick.js
+++ b/src/components/Interpretations/common/useConfirmClick.js
@@ -1,6 +1,6 @@
import { useCallback, useEffect, useRef, useState } from 'react'
-const CONFIRM_TIMEOUT_MS = 3000
+export const CONFIRM_TIMEOUT_MS = 3000
const useConfirmClick = (action) => {
const [isConfirming, setIsConfirming] = useState(false)
diff --git a/yarn.lock b/yarn.lock
index bab02b3c1..feb5bde44 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4060,12 +4060,12 @@
"@typescript-eslint/types" "8.58.0"
"@typescript-eslint/visitor-keys" "8.58.0"
-"@typescript-eslint/tsconfig-utils@8.57.1", "@typescript-eslint/tsconfig-utils@^8.57.1":
+"@typescript-eslint/tsconfig-utils@8.57.1":
version "8.57.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.1.tgz#9233443ec716882a6f9e240fd900a73f0235f3d7"
integrity sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==
-"@typescript-eslint/tsconfig-utils@8.58.0", "@typescript-eslint/tsconfig-utils@^8.58.0":
+"@typescript-eslint/tsconfig-utils@8.58.0", "@typescript-eslint/tsconfig-utils@^8.57.1", "@typescript-eslint/tsconfig-utils@^8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.0.tgz#c5a8edb21f31e0fdee565724e1b984171c559482"
integrity sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==
@@ -4096,12 +4096,12 @@
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
-"@typescript-eslint/types@8.57.1", "@typescript-eslint/types@^8.57.1":
+"@typescript-eslint/types@8.57.1":
version "8.57.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.57.1.tgz#54b27a8a25a7b45b4f978c3f8e00c4c78f11142c"
integrity sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==
-"@typescript-eslint/types@8.58.0", "@typescript-eslint/types@^8.58.0":
+"@typescript-eslint/types@8.58.0", "@typescript-eslint/types@^8.57.1", "@typescript-eslint/types@^8.58.0":
version "8.58.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.58.0.tgz#e94ae7abdc1c6530e71183c1007b61fa93112a5a"
integrity sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==