fix: [PWT-169] 사전 등록 > 기기 체크 없이 스토브 앱 다운로드 버튼 노출되는 현상 문의

This commit is contained in:
clkim
2025-12-08 18:37:02 +09:00
parent 379c1e1b6a
commit 418adfec17
7 changed files with 127 additions and 119 deletions

View File

@@ -42,7 +42,6 @@ const currentStep = ref<1 | 2>(1)
const isSubmitting = ref(false)
const isCheckedMarketing = ref(false)
const isExpandedMarketing = ref(false)
const isValidated = ref(false) // 검증 완료 여부 (중복 검증 방지)
const canSubmit = computed(() => isCheckedMarketing.value)
const errorMessages = computed<Record<number, string>>(() => ({
@@ -168,7 +167,6 @@ const handleOpenPreregist = async (): Promise<void> => {
})
}
isValidated.value = true // 검증 완료 플래그
isModalOpen.value = true
currentStep.value = 1
}
@@ -186,11 +184,8 @@ const handleSubmit = async (): Promise<void> => {
return
}
// 이미 검증을 통과한 경우 재검증 스킵
if (!isValidated.value) {
const isValid = await checkValidation()
if (!isValid) return
}
const isValid = await checkValidation()
if (!isValid) return
isSubmitting.value = true
try {
@@ -199,7 +194,7 @@ const handleSubmit = async (): Promise<void> => {
event_code: props.preregistCode,
lang_code: locale.value,
terms_type: 3,
device_type: device.isMobile ? 'mobile' : 'pc',
device_type: device.isDesktop ? 'pc' : 'mobile',
country_code: countryCode.value || 'KR',
necessary_consent1: 'Y',
necessary_consent2: 'Y',
@@ -234,7 +229,6 @@ const handleCloseModal = (): void => {
isCheckedMarketing.value = false
isExpandedMarketing.value = false
isSubmitting.value = false
isValidated.value = false // 검증 플래그도 초기화
}
defineExpose({
@@ -385,6 +379,7 @@ defineExpose({
</p>
<div class="flex items-center gap-3">
<div
v-if="device.isDesktop"
class="flex size-[108px] p-4 shrink-0 items-center justify-center rounded-lg bg-white/[0.04] backdrop-blur-[15px] md:size-[124px] md:p-4.5"
>
<AtomsImg
@@ -396,6 +391,7 @@ defineExpose({
</div>
<div class="flex flex-1 flex-col gap-3">
<a
v-if="device.isDesktop ? true : device.isAndroid"
href="https://play.google.com/store/search?q=stove&c=apps"
target="_blank"
class="flex h-12 w-full items-center justify-center gap-1.5 rounded-lg bg-white/[0.04] px-8 pl-8 pr-10 text-sm font-medium leading-5 tracking-[-0.42px] text-white no-underline backdrop-blur-[15px] transition-colors duration-200 hover:bg-white/[0.08] md:h-14 md:gap-2 md:text-base md:leading-6 md:tracking-[-0.48px]"
@@ -404,6 +400,7 @@ defineExpose({
<span>Google Play</span>
</a>
<a
v-if="device.isDesktop ? true : device.isApple"
href="https://apps.apple.com/app/stove-app-stove-app/id1342134971"
target="_blank"
class="flex h-12 w-full items-center justify-center gap-1.5 rounded-lg bg-white/[0.04] px-8 pl-8 pr-10 text-sm font-medium leading-5 tracking-[-0.42px] text-white no-underline backdrop-blur-[15px] transition-colors duration-200 hover:bg-white/[0.08] md:h-14 md:gap-2 md:text-base md:leading-6 md:tracking-[-0.48px]"