🔧(frontend) make transcription beta registration form optional
Add configuration to disable transcription beta form for self-hosted deployments that don't offer this feature. Quick implementation, needs refinement.
This commit is contained in:
committed by
aleb_the_flash
parent
1b9af5bf6d
commit
e01b1713c4
@@ -6,7 +6,7 @@ import { styled } from '@/styled-system/jsx'
|
|||||||
import { css } from '@/styled-system/css'
|
import { css } from '@/styled-system/css'
|
||||||
import { Button, LinkButton } from '@/primitives'
|
import { Button, LinkButton } from '@/primitives'
|
||||||
import { RiArrowLeftSLine, RiArrowRightSLine } from '@remixicon/react'
|
import { RiArrowLeftSLine, RiArrowRightSLine } from '@remixicon/react'
|
||||||
import { useState } from 'react'
|
import { useMemo, useState } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
import { useConfig } from '@/api/useConfig'
|
import { useConfig } from '@/api/useConfig'
|
||||||
|
|
||||||
@@ -169,10 +169,16 @@ const SLIDES: Slide[] = [
|
|||||||
export const IntroSlider = () => {
|
export const IntroSlider = () => {
|
||||||
const [slideIndex, setSlideIndex] = useState(0)
|
const [slideIndex, setSlideIndex] = useState(0)
|
||||||
const { t } = useTranslation('home', { keyPrefix: 'introSlider' })
|
const { t } = useTranslation('home', { keyPrefix: 'introSlider' })
|
||||||
const NUMBER_SLIDES = SLIDES.length
|
|
||||||
|
|
||||||
const { data } = useConfig()
|
const { data } = useConfig()
|
||||||
|
|
||||||
|
const filteredSlides = useMemo(
|
||||||
|
() => (data?.transcript?.form_beta_users ? SLIDES : SLIDES.slice(0, 2)),
|
||||||
|
[data]
|
||||||
|
)
|
||||||
|
|
||||||
|
const NUMBER_SLIDES = filteredSlides.length
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container>
|
<Container>
|
||||||
<div
|
<div
|
||||||
@@ -197,7 +203,7 @@ export const IntroSlider = () => {
|
|||||||
</ButtonVerticalCenter>
|
</ButtonVerticalCenter>
|
||||||
</ButtonContainer>
|
</ButtonContainer>
|
||||||
<SlideContainer>
|
<SlideContainer>
|
||||||
{SLIDES.map((slide, index) => (
|
{filteredSlides.map((slide, index) => (
|
||||||
<Slide visible={index == slideIndex} key={index}>
|
<Slide visible={index == slideIndex} key={index}>
|
||||||
<Image src={slide.img} alt={t(`${slide.key}.imgAlt`)} />
|
<Image src={slide.img} alt={t(`${slide.key}.imgAlt`)} />
|
||||||
<TextAnimation visible={index == slideIndex}>
|
<TextAnimation visible={index == slideIndex}>
|
||||||
@@ -240,7 +246,7 @@ export const IntroSlider = () => {
|
|||||||
display: { base: 'none', xsm: 'block' },
|
display: { base: 'none', xsm: 'block' },
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
{SLIDES.map((_, index) => (
|
{filteredSlides.map((_, index) => (
|
||||||
<Dot key={index} selected={index == slideIndex} />
|
<Dot key={index} selected={index == slideIndex} />
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -193,14 +193,16 @@ export const TranscriptSidePanel = () => {
|
|||||||
</A>
|
</A>
|
||||||
)}
|
)}
|
||||||
</Text>
|
</Text>
|
||||||
<LinkButton
|
{data?.transcript.form_beta_users && (
|
||||||
size="sm"
|
<LinkButton
|
||||||
variant="tertiary"
|
size="sm"
|
||||||
href={data?.transcript.form_beta_users}
|
variant="tertiary"
|
||||||
target="_blank"
|
href={data?.transcript.form_beta_users}
|
||||||
>
|
target="_blank"
|
||||||
{t('beta.button')}
|
>
|
||||||
</LinkButton>
|
{t('beta.button')}
|
||||||
|
</LinkButton>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
|
|||||||
Reference in New Issue
Block a user