Skip to content

Commit 7c9944f

Browse files
farosFreedJess Divers
andauthored
feat: APPS-3677 imageslider support altText field in addition to alt (#884)
* feat: imageslider support altText field in addition to alt * chore: prefer altText over alt * fix: remove santize html until it can be configured better --------- Co-authored-by: Jess Divers <jessica.divers@library.ucla.edu>
1 parent f8d91c2 commit 7c9944f

File tree

3 files changed

+47
-3
lines changed

3 files changed

+47
-3
lines changed

packages/vue-component-library/src/lib-components/ImageSlider.vue

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ const parsedSliderAspectRatio = computed(() => {
2525
return `${aspectRatio}`
2626
})
2727
28+
// return alt or altText field, whichever is present
29+
const parsedBeforeImageAltText = computed(() => {
30+
return beforeImage.altText || beforeImage.alt || ''
31+
})
32+
const parsedAfterImageAltText = computed(() => {
33+
return afterImage.altText || afterImage.alt || ''
34+
})
35+
2836
function handleSliderInput(event: Event) {
2937
const target = event.target as HTMLInputElement
3038
if (sliderContainer.value && slider.value && beforeImageElement.value)
@@ -35,8 +43,8 @@ function handleSliderInput(event: Event) {
3543
<template>
3644
<div ref="sliderContainer" class="image-slider" :style="{ aspectRatio: parsedSliderAspectRatio }">
3745
<div class="image-container" :style="{ aspectRatio: parsedSliderAspectRatio }">
38-
<img class="after-image slider-image" :src="afterImage.src" :alt="afterImage.alt">
39-
<img ref="beforeImageElement" class="before-image slider-image" :src="beforeImage.src" :alt="beforeImage.alt">
46+
<img class="after-image slider-image" :src="afterImage.src" :alt="parsedAfterImageAltText">
47+
<img ref="beforeImageElement" class="before-image slider-image" :src="beforeImage.src" :alt="parsedBeforeImageAltText">
4048
<div class="image-labels">
4149
<span class="before-label slider-label">
4250
<slot name="beforeLabel">Before</slot>

packages/vue-component-library/src/lib-components/RichText.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const parsedContent = computed(() => {
3333
<div :class="classes">
3434
<div
3535
class="parsed-content"
36-
v-sanitize-html="parsedContent"
36+
v-html="parsedContent"
3737
/>
3838
<slot />
3939
</div>

packages/vue-component-library/src/stories/ImageSlider.stories.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,42 @@ export function Default() {
5757
}
5858
}
5959

60+
export function DefaultWithAltText() {
61+
return {
62+
data() {
63+
return {
64+
...mockBeforeAfterImageCarousel[0],
65+
beforeImage: {
66+
...mockBeforeImage[0],
67+
altText: 'Before image alt text'
68+
},
69+
afterImage: {
70+
...mockBeforeImage[0],
71+
altText: 'After image alt text'
72+
}
73+
}
74+
},
75+
components: { ImageSlider },
76+
template: `
77+
<component is="style" type="text/css">
78+
.before-image {
79+
filter: grayscale(100%)
80+
}
81+
</component>
82+
<div style="padding: 1rem; max-width: 1160px;">
83+
<image-slider
84+
:before-image="beforeImage"
85+
:after-image="afterImage"
86+
>
87+
<template #captionText>
88+
{{ caption }}
89+
</template>
90+
</image-slider>
91+
</div>
92+
`,
93+
}
94+
}
95+
6096
const mockSquareImage = [
6197
{
6298
id: '3280520',

0 commit comments

Comments
 (0)