refactor: ♻️ clean up accordion

This commit is contained in:
Corentin Huet 2025-12-09 16:54:50 +01:00 • committed by K Muller
parent c46eae65fd
commit 107880afd6
8 changed files with 92 additions and 79 deletions

View file

@ -104,7 +104,7 @@
data-prev-button-label="Load Previous">
@foreach ($postContainer['documents'] as $document)
@if ($postContainer['accordeon'])
<x-front.sections.accordeon.document-accordeon :document='$document' />
<x-front.sections.accordion.document-accordion :document='$document' />
@else
<a class="posts-list__item list-item-doc" href="{{ $document['url'] }}"
title="{{ $document['title'] }}" download=""

View file

@ -46,7 +46,7 @@
@endif
</div>
@endif
<x-front.sections.accordeon.accordeon :accordeon='$accordion["accordions"]' />
<x-front.sections.accordion.accordion :accordion='$accordion["accordions"]' />
</div>
</div>
@endforeach

View file

@ -1,55 +0,0 @@
@if (!empty($item))
<div class="accordeon__item accordeon-item">
<h3 class="accordeon-item__title">{{ $item['title'] }}</h3>
<div class="accordeon-item__info" style="display: none;">
<div class="accordeon-item__info-inner">
@if ($type === 'video')
<div class="accordeon-item__videos-list videos-list">
@foreach ($item['videos'] as $video)
@if (!empty($video['image']))
<div class="picture">
<img src="{{ $video['image'] }}" alt="{{ $video['asset_title'] }}">
<div class="picture__title">{{ $video['title'] }}</div>
</div>
@else
<div class="video">
@if (!empty($video['video']))
<x-front.sections.video :video='$video' class="video__wrap" />
@endif
<div class="video__title">{{ $video['title'] }}</div>
</div>
@endif
@endforeach
</div>
@else
<div class="textblock__container accordeon_container">
<div class="textblock__image textblock__block">
<div class="image-border-wrap">
<x-front.borders :borders="[
'desktop' => [
'left' => true,
'right' => true,
'top' => true,
'bottom' => true,
],
'mobile' => [
'left' => true,
'right' => true,
'top' => true,
'bottom' => true,
],
]" />
<img src="{{ asset($item['img']) }}" alt="{{ $item['title'] }}">
</div>
</div>
<div class="textblock__info textblock__block">
<div class="textblock__info-description description">
{!! $item['text'] !!}
</div>
</div>
</div>
@endif
</div>
</div>
</div>
@endif

View file

@ -1,18 +0,0 @@
@if (!empty($accordeon))
<div class="accordeon {{ isset($accordeon['class']) ? $accordeon['class'] : '' }}">
@if ($accordeon['type'] === 'video')
@foreach ($accordeon['items'] as $item)
<x-front.sections.accordeon.accordeon-item :item='$item' type="{{ $accordeon['type'] }}" />
@endforeach
@else
<div class="accordeon__wrapper wrapper">
<div class="accordeon__list">
@foreach ($accordeon['items'] as $item)
<x-front.sections.accordeon.accordeon-item :item='$item' type="{{ $accordeon['type'] }}" />
@endforeach
</div>
</div>
@endif
</div>
@endif

View file

@ -0,0 +1,65 @@
@if (!empty($accordion))
<div class="accordeon__item accordeon-item">
<h3 class="accordeon-item__title">{{ $accordion['string_title'] }}</h3>
<div class="accordeon-item__info" style="display: none;">
<div class="accordeon-item__info-inner">
@if ($type !== 'text_block')
<div class="accordeon-item__videos-list videos-list">
@foreach ($accordion['list_medias'] as $media)
<div @class([
'picture' => !empty($media['image_media']),
'video' => empty($media['image_media']),
])>
@if (!empty($media['youtubeid_video']) || !empty($media['vimeoid_video']))
@php
$video = [
'type_video' => isset($media['youtubeid_video']) ? 'youtube' : 'vimeo',
'video' => isset($media['youtubeid_video']) ? $media['youtubeid_video']: $media['vimeoid_video']
];
@endphp
<x-front.sections.video :video='$video' class="video__wrap" />
@elseif (!empty($media['image_media']))
<img src="{{ asset($media['image_media']) }}" alt="{{ $media['string_alt'] }}">
@endif
<div @class([
'picture__title' => !empty($media['image_media']),
'video__title' => empty($media['image_media']),
])>
{{ $media['string_title'] }}
</div>
</div>
@endforeach
</div>
@else
<div class="textblock__container accordeon_container">
<div class="textblock__image textblock__block">
<div class="image-border-wrap">
<x-front.borders :borders="[
'desktop' => [
'left' => true,
'right' => true,
'top' => true,
'bottom' => true,
],
'mobile' => [
'left' => true,
'right' => true,
'top' => true,
'bottom' => true,
],
]" />
<img src="{{ asset($accordion['image_block']) }}" alt="{{ $accordion['string_alt'] }}">
</div>
</div>
<div class="textblock__info textblock__block">
<div class="textblock__info-description description">
{!! $accordion['wysiwyg_content'] !!}
</div>
</div>
</div>
@endif
</div>
</div>
</div>
@endif

View file

@ -0,0 +1,21 @@
@if (!empty($accordion))
@php
$type = 'medias';
@endphp
<div @class([
'accordeon',
$accordion['class'] ?? null,
])>
<div @class([
'accordeon__wrapper wrapper' => $type !== 'medias'
])>
<div @class([
'accordeon__list' => $type !== 'medias'
])>
@foreach ($accordion as $acc)
<x-front.sections.accordion.accordion-item :accordion='$acc' type="{{ $type }}" />
@endforeach
</div>
</div>
</div>
@endif

View file

@ -12,15 +12,15 @@
'subtitle' => $groupAccordion['string_subtitle'],
],
'accordions' => [
'type' => 'text-block',
'type' => 'text_block',
'items' => [],
],
];
foreach($groupAccordion['list_accordion'] as $accordion) {
array_push($accordions[$key]['accordions']['items'], [
'img' => $accordion['image_visual'],
'title' => $accordion['string_title'],
'text' => $accordion['wysiwyg_content'],
'image_block' => $accordion['image_visual'],
'string_alt' => $accordion['string_title'],
'wysiwyg_content' => $accordion['wysiwyg_content'],
]) ;
}
}