diff --git a/web/prisma/migrations/20250613125943_warning_verification_step/migration.sql b/web/prisma/migrations/20250613125943_warning_verification_step/migration.sql new file mode 100644 index 0000000..11d896d --- /dev/null +++ b/web/prisma/migrations/20250613125943_warning_verification_step/migration.sql @@ -0,0 +1,2 @@ +-- AlterEnum +ALTER TYPE "VerificationStepStatus" ADD VALUE 'WARNING'; diff --git a/web/prisma/schema.prisma b/web/prisma/schema.prisma index a041a11..e5cfe19 100644 --- a/web/prisma/schema.prisma +++ b/web/prisma/schema.prisma @@ -578,6 +578,7 @@ enum VerificationStepStatus { IN_PROGRESS PASSED FAILED + WARNING } model VerificationStep { diff --git a/web/src/components/VerificationWarningBanner.astro b/web/src/components/VerificationWarningBanner.astro index ab9b68c..ddd4464 100644 --- a/web/src/components/VerificationWarningBanner.astro +++ b/web/src/components/VerificationWarningBanner.astro @@ -3,6 +3,7 @@ import { Icon } from 'astro-icon/components' import { differenceInDays, isPast } from 'date-fns' import { verificationStatusesByValue } from '../constants/verificationStatus' +import { verificationStepStatusesByValue } from '../constants/verificationStepStatus' import { cn } from '../lib/cn' import TimeFormatted from './TimeFormatted.astro' @@ -67,7 +68,7 @@ const wasRecentlyAdded = isPast(listedDate) && differenceInDays(new Date(), list ) : wasRecentlyAdded ? ( -
+
This service was {service.listedAt === null ? 'added ' : 'listed '}{' '} {service.verificationStatus !== 'VERIFICATION_SUCCESS' && ' and it is not verified'}. Proceed with @@ -98,14 +99,29 @@ const wasRecentlyAdded = isPast(listedDate) && differenceInDays(new Date(), list { service.verificationStatus !== 'VERIFICATION_FAILED' && service.verificationSteps.some((step) => step.status === 'FAILED') && ( - + Some verification steps failed. Please review the details below. + + ) +} + +{ + service.verificationStatus !== 'VERIFICATION_FAILED' && + !service.verificationSteps.some((step) => step.status === 'FAILED') && + service.verificationSteps.some((step) => step.status === 'WARNING') && ( + + + Some verification steps are marked as warnings. + ) } diff --git a/web/src/constants/verificationStepStatus.ts b/web/src/constants/verificationStepStatus.ts index d42ac40..2b3c347 100644 --- a/web/src/constants/verificationStepStatus.ts +++ b/web/src/constants/verificationStepStatus.ts @@ -42,6 +42,12 @@ export const { icon: 'ri:alert-line', color: 'red', }, + { + value: 'WARNING', + label: 'Warning', + icon: 'ri:alert-line', + color: 'yellow', + }, { value: 'PENDING', label: 'Pending', diff --git a/web/src/pages/service/[slug].astro b/web/src/pages/service/[slug].astro index a7bef4f..18f0700 100644 --- a/web/src/pages/service/[slug].astro +++ b/web/src/pages/service/[slug].astro @@ -387,6 +387,13 @@ const getVerificationStepStatusInfo = (status: VerificationStepStatus) => { color: 'red', timelineIconClass: 'text-red-400', } as const + case VerificationStepStatus.WARNING: + return { + text: 'Warning', + icon: 'ri:alert-line', + color: 'yellow', + timelineIconClass: 'text-yellow-400', + } as const default: return { text: 'Unknown',