useExtensionPanel.ts 638 B

1234567891011121314151617181920212223242526272829
  1. import type { Ref } from 'vue'
  2. /**
  3. * @category composables/form
  4. * Composable pour gérer les expansions des accordéons
  5. */
  6. export function useExtensionPanel(route: Ref) {
  7. const panel: Ref<number> = ref(0)
  8. const activeAccordionId = route.value.query.accordion
  9. onMounted(() => {
  10. setTimeout(function () {
  11. Object.entries(
  12. document.getElementsByClassName('v-expansion-panel'),
  13. ).forEach((element, index) => {
  14. if (element.id === activeAccordionId) {
  15. panel.value = index
  16. }
  17. })
  18. if (!panel.value) {
  19. panel.value = 0
  20. }
  21. }, 0)
  22. })
  23. return {
  24. panel,
  25. }
  26. }