Liste de téléchargements de fichiers - DsfrFileDownloadList
🌟 Introduction
La liste de téléchargements de fichiers permet de grouper plusieurs liens de téléchargement dans une liste organisée avec un style cohérent.
🏅 La documentation du composant téléchargement de fichier sur le DSFR
La story de la liste de téléchargements sur le storybook de VueDsfr📐 Structure
La liste de téléchargements crée :
- Un conteneur
<div>
avec les classesfr-downloads-group fr-downloads-group--bordered
- Un titre
<h4>
optionnel avec la classefr-downloads-group__title
- Une liste
<ul>
contenant des élémentsDsfrFileDownload
🛠️ Props
nom | type | défaut | obligatoire | description |
---|---|---|---|---|
files | DsfrFileDownloadProps[] | [] | ✅ | Tableau d'objets définissant les fichiers à télécharger |
title | string | '' | Titre optionnel de la liste de téléchargements |
📡 Événements
DsfrFileDownloadList
ne déclenche pas d'événements.
🧩 Slots
DsfrFileDownloadList
n'a pas de slots personnalisés.
📝 Exemples
Exemple d'utilisation basique de la liste de téléchargements :
vue
<script setup lang="ts">
import { ref } from 'vue'
const files = ref([
{
title: 'Formulaire de demande',
format: 'PDF',
size: '1.2 Mo',
href: '/downloads/formulaire.pdf',
download: 'formulaire-demande.pdf',
},
{
title: 'Notice explicative',
format: 'DOCX',
size: '850 Ko',
href: '/downloads/notice.docx',
download: 'notice-explicative.docx',
},
{
title: 'Modèle de courrier',
format: 'ODT',
size: '156 Ko',
href: '/downloads/modele.odt',
download: 'modele-courrier.odt',
},
])
</script>
<template>
<DsfrFileDownloadList
title="Documents administratifs"
:files="files"
/>
</template>
⚙️ Code source du composant
vue
<script lang="ts" setup>
import type { DsfrFileDownloadListProps } from './DsfrFileDownload.types'
import DsfrFileDownload from './DsfrFileDownload.vue'
export type { DsfrFileDownloadListProps }
withDefaults(defineProps<DsfrFileDownloadListProps>(), {
files: () => [],
title: '',
})
</script>
<template>
<div class="fr-downloads-group fr-downloads-group--bordered">
<h4
v-if="title"
class="fr-downloads-group__title"
>
{{ title }}
</h4>
<ul>
<li
v-for="(element, idx) of files"
:key="idx"
>
<DsfrFileDownload
:title="element.title"
:format="element.format"
:size="element.size"
:href="element.href"
:download="element.download"
/>
</li>
</ul>
</div>
</template>
ts
export type DsfrFileDownloadProps = {
title?: string
format?: string
size?: string
href?: string
download?: string
}
export type DsfrFileDownloadListProps = {
files: DsfrFileDownloadProps[]
title: string
}