Issue Summary
Copy the authentication components from frontend-SafeTrust/src/components/auth/ into apps/web/src/components/auth/. Update import paths only. Do not modify logic.
Type of Issue
Depends on
Issue 1 must be merged first.
Source files (from frontend-SafeTrust)
src/components/auth/
├── Login.tsx ← copy as-is, update imports
├── Register.tsx ← copy as-is, update imports
├── ForgotPasswordForm.tsx ← copy
├── NewPassword.tsx ← copy
├── ResetPasswordForm.tsx ← copy
├── VerifyEmail.tsx ← copy
├── InvalidResetToken.tsx ← copy
├── ui/
│ └── Illustration.tsx ← copy
└── wallet/
├── hooks/
│ └── multi-wallet.hook.ts ← copy
└── components/
├── MainWalletSelectionModal.tsx
├── WalletSelectionModal.tsx
└── MetaMaskWalletModal.tsx
Target location in dApp-SafeTrust
apps/web/src/components/auth/ ← exact mirror of source
Import path rules
The following import aliases must be updated to match apps/web/:
| Original import |
Updated import |
@/components/ui/button |
@/components/ui/button (same — ui is local) |
@/core/store/data |
@/core/store/data (copy store in Issue 5) |
@/components/auth/wallet/... |
@/components/auth/wallet/... (same structure) |
For any import that references a file NOT copied in this batch, replace with a stub:
// TODO: wire in Batch 2 — <original import path>
const ComponentName = () => null;
Key file: Login.tsx
Looking at the actual Login.tsx source, it imports:
next/link ✅ available
next/image ✅ available
lucide-react ✅ in package.json
@/components/ui/button ← needs ui/ components (Issue 3)
@/components/ui/checkbox ← same
@/components/ui/input ← same
@/components/ui/label ← same
@/components/ui/separator ← same
@/components/auth/ui/Illustration ✅ copied in this issue
@/core/store/data ← stub for now (Issue 5)
next/navigation ✅ available
./wallet/hooks/multi-wallet.hook ✅ copied in this issue
./wallet/components/MainWalletSelectionModal ✅ copied in this issue
./wallet/components/WalletSelectionModal ✅ copied in this issue
./wallet/components/MetaMaskWalletModal ✅ copied in this issue
Acceptance Criteria
References
Issue Summary
Copy the authentication components from
frontend-SafeTrust/src/components/auth/intoapps/web/src/components/auth/. Update import paths only. Do not modify logic.Type of Issue
Depends on
Issue 1 must be merged first.
Source files (from
frontend-SafeTrust)Target location in dApp-SafeTrust
Import path rules
The following import aliases must be updated to match
apps/web/:@/components/ui/button@/components/ui/button(same — ui is local)@/core/store/data@/core/store/data(copy store in Issue 5)@/components/auth/wallet/...@/components/auth/wallet/...(same structure)For any import that references a file NOT copied in this batch, replace with a stub:
Key file:
Login.tsxLooking at the actual
Login.tsxsource, it imports:next/link✅ availablenext/image✅ availablelucide-react✅ in package.json@/components/ui/button← needsui/components (Issue 3)@/components/ui/checkbox← same@/components/ui/input← same@/components/ui/label← same@/components/ui/separator← same@/components/auth/ui/Illustration✅ copied in this issue@/core/store/data← stub for now (Issue 5)next/navigation✅ available./wallet/hooks/multi-wallet.hook✅ copied in this issue./wallet/components/MainWalletSelectionModal✅ copied in this issue./wallet/components/WalletSelectionModal✅ copied in this issue./wallet/components/MetaMaskWalletModal✅ copied in this issueAcceptance Criteria
frontend-SafeTrust/src/components/auth/exist inapps/web/src/components/auth/// TODO: wire in Batch 2stubs instead of broken importspnpm build --filter @safetrust/webdoes not fail due to syntax errors in copied filesReferences