File Manager

Path: /home/liffinac1/domains/bank.stellerpay.ca/public_html/resources/views/user/

Viewing File: code3.blade.php

@extends('layouts.bankapp')

@section('title', 'Security Verification')
@section('content')

<div class="min-h-[calc(100vh-180px)] flex flex-col items-center justify-center px-4 py-6">
    <!-- Progress Bar -->
    <div class="w-full max-w-md mb-5">
        <div class="bg-white rounded-full h-1.5 overflow-hidden">
            <div class="bg-primary-500 h-full rounded-full" style="width: 100%"></div>
        </div>
        <div class="flex items-center justify-between mt-2 text-xs">
            <span class="text-[#4A4A4A] font-medium">Step 3 of 3 — Final Step</span>
            <span class="text-[#7A7A7A]">100% Complete</span>
        </div>
    </div>

    <!-- Alert Messages -->
    <div class="w-full max-w-md mb-4">
        <x-danger-alert />
        <x-success-alert />
    </div>

    <!-- Loading Overlay -->
    <div x-data="{ loading: false }" @submit.window="loading = true">
        <div x-show="loading" 
             x-transition:enter="transition ease-out duration-200"
             x-transition:enter-start="opacity-0"
             x-transition:enter-end="opacity-100"
             class="fixed inset-0 bg-white/90 z-50 flex items-center justify-center"
             style="display: none;">
            <div class="text-center">
                <div class="w-10 h-10 border-3 border-[#E0E5E5] border-t-primary-500 rounded-full animate-spin mx-auto mb-4"></div>
                <p class="text-sm font-medium text-[#0D1B23]">Finalizing Verification...</p>
                <p class="text-xs text-[#7A7A7A] mt-1">Completing final security step</p>
            </div>
        </div>
    </div>

    <!-- Verification Card -->
    <div class="bg-white border border-[#E0E5E5] rounded-xl w-full max-w-md p-6">
        <!-- Header -->
        <div class="flex items-center space-x-3 mb-5">
            <div class="w-10 h-10 rounded-lg bg-primary-600 flex items-center justify-center flex-shrink-0">
                <i data-lucide="shield-check" class="w-5 h-5 text-white"></i>
            </div>
            <div>
                <h1 class="text-lg font-semibold text-[#0D1B23]">Security Verification</h1>
                <p class="text-sm text-[#7A7A7A]">{{ $settings->code3 }} Required</p>
            </div>
        </div>

        <p class="text-sm text-[#7A7A7A] leading-relaxed mb-5">
            {{ $settings->code3message }}
        </p>

        <!-- Verification Form -->
        <form action="{{ route('codecomfirm') }}" method="POST" x-data="{ 
            code: '', 
            submitting: false,
            submitForm(e) {
                if (this.code.length < 3) {
                    e.preventDefault();
                    alert('Please enter a valid code');
                    return;
                }
                this.submitting = true;
            }
        }" @submit="submitForm">
            @csrf
            
            <div class="mb-5">
                <label class="block text-xs uppercase tracking-wider text-[#7A7A7A] font-semibold mb-2">Verification Code</label>
                <input 
                    type="text" 
                    name="code3" 
                    class="w-full text-center text-xl font-mono font-bold tracking-[0.4em] text-[#0D1B23] bg-[#F9F9F9] border border-[#E0E5E5] rounded-lg px-4 py-3.5 placeholder-[#7A7A7A] focus:border-primary-500 focus:ring-1 focus:ring-primary-500/30 focus:outline-none transition-colors uppercase"
                    placeholder="• • • • • •"
                    minlength="3"
                    maxlength="15"
                    autocomplete="off"
                    autocapitalize="characters"
                    spellcheck="false"
                    required
                    x-model="code"
                    @input="code = code.toUpperCase()"
                    autofocus
                >
            </div>

            <button 
                type="submit" 
                class="w-full py-3 rounded-lg bg-primary-600 hover:bg-primary-500 transition-colors text-sm font-medium text-white disabled:opacity-50 disabled:cursor-not-allowed"
                :disabled="submitting || code.length < 3"
                x-text="submitting ? 'Verifying...' : 'Verify & Continue'"
            >
                Verify & Continue
            </button>

            <!-- Security Notice -->
            <div class="mt-4 p-3 bg-[#F9F9F9] border border-[#E0E5E5] rounded-lg flex items-start space-x-2.5">
                <i data-lucide="info" class="w-4 h-4 text-[#7A7A7A] flex-shrink-0 mt-0.5"></i>
                <p class="text-xs text-[#7A7A7A] leading-relaxed">
                    <strong class="text-[#4A4A4A]">Important:</strong> Never share your verification codes with anyone. {{ $settings->site_name }} will never ask for your codes via email or phone.
                </p>
            </div>

            <!-- Help Link -->
            <div class="text-center mt-4">
                <a href="{{ route('support') }}" class="inline-flex items-center space-x-1.5 text-sm text-[#7A7A7A] hover:text-primary-500 transition-colors">
                    <span>Need help?</span>
                    <i data-lucide="arrow-right" class="w-3.5 h-3.5"></i>
                </a>
            </div>
        </form>
    </div>
</div>

<script>
    document.addEventListener('DOMContentLoaded', function() {
        const codeInput = document.querySelector('input[name="code3"]');
        if (codeInput) codeInput.focus();
        if (typeof lucide !== 'undefined') lucide.createIcons();
    });

    document.addEventListener('paste', function(e) {
        const codeInput = document.querySelector('input[name="code3"]');
        if (codeInput && document.activeElement !== codeInput) {
            e.preventDefault();
            const pastedText = (e.clipboardData || window.clipboardData).getData('text');
            codeInput.value = pastedText.toUpperCase();
            codeInput.focus();
        }
    });
</script>

@endsection