From a9dd246faed791fa157df9716a561a68eec4e3a5 Mon Sep 17 00:00:00 2001 From: Quentin Bellanger Date: Thu, 2 Apr 2026 14:54:53 +0200 Subject: [PATCH 01/12] feat: create copybutton component and use it on report page --- .../src/components/ui/CopyButton.vue | 41 +++++++++++++++++ .../src/pages/report/ReportPage.vue | 44 ++++--------------- 2 files changed, 50 insertions(+), 35 deletions(-) create mode 100644 confiture-web-app/src/components/ui/CopyButton.vue diff --git a/confiture-web-app/src/components/ui/CopyButton.vue b/confiture-web-app/src/components/ui/CopyButton.vue new file mode 100644 index 000000000..bb5ecc53e --- /dev/null +++ b/confiture-web-app/src/components/ui/CopyButton.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/confiture-web-app/src/pages/report/ReportPage.vue b/confiture-web-app/src/pages/report/ReportPage.vue index bbb2960a8..f752f3d00 100644 --- a/confiture-web-app/src/pages/report/ReportPage.vue +++ b/confiture-web-app/src/pages/report/ReportPage.vue @@ -9,6 +9,7 @@ import ReportErrors from "../../components/report/ReportErrors.vue"; import ReportImprovements from "../../components/report/ReportImprovements.vue"; import ReportNotes from "../../components/report/ReportNotes.vue"; import ReportResults from "../../components/report/ReportResults.vue"; +import CopyButton from "../../components/ui/CopyButton.vue"; import Dropdown from "../../components/ui/Dropdown.vue"; import TopLink from "../../components/ui/TopLink.vue"; import { useWrappedFetch } from "../../composables/useWrappedFetch"; @@ -35,7 +36,6 @@ const report = useReportStore(); const router = useRouter(); -const showCopyAlert = ref(false); const onboardingModalRef = ref>(); const tabsRef = ref>(); @@ -120,23 +120,10 @@ const siteUrl = computed(() => { return null; }); -const copyReportButtonRef = ref(); - -async function copyReportUrl() { - const url = - window.location.origin + +const reportUrlToCopy = + window.location.origin + router.resolve({ name: "report", params: { uniqueId } }).fullPath; - navigator.clipboard.writeText(url).then(() => { - showCopyAlert.value = true; - }); -} - -function hideReportAlert() { - showCopyAlert.value = false; - copyReportButtonRef.value?.focus(); -} - function onOnboardingClose() { localStorage.setItem("confiture:seen-onboarding", "true"); } @@ -175,13 +162,12 @@ watch(

Rapport d’audit accessibilité

- +
-
-
-

Le lien vers le rapport a bien été copié dans le presse-papier.

- -
-
- @@ -69,4 +86,14 @@ const auditIsReady = computed(() => { .report-step-copy { grid-column: 1 / -1; } + +.report-step-actions { + grid-column: 1/-1; + display: grid; + grid-template-columns: subgrid; + + @media (width < 48rem) { + grid-template-columns: 1fr; + } +} diff --git a/confiture-web-app/src/components/overview/StatementStep.vue b/confiture-web-app/src/components/overview/StatementStep.vue index 32553e7a1..96675df29 100644 --- a/confiture-web-app/src/components/overview/StatementStep.vue +++ b/confiture-web-app/src/components/overview/StatementStep.vue @@ -4,7 +4,7 @@ import { computed } from "vue"; import { useResultsStore } from "../../store"; import { Audit } from "../../types"; import { formatDate, isSameDay } from "../../utils"; -import CopyBlock from "../ui/CopyBlock.vue"; +import CopyButton from "../ui/CopyButton.vue"; import StepCard from "./StepCard.vue"; const props = defineProps<{ @@ -68,20 +68,33 @@ const auditIsPublishable = computed(() => {

- +
+
+ + Consulter + la déclaration d’accessibilité (nouvelle fenêtre) + +
+
+ +
+