Skip to content

Commit 8296302

Browse files
AlexVOiceoverclaude
andcommitted
chore: reorganize folder structure for better code organization
- Create feature-specific folder structure for help, auth, questions, statements, and wizard - Move UI component files to their corresponding feature folders - Create index.ts barrel files for cleaner imports - Update import paths in affected files - Fix TypeScript interface definitions in Dropdown component - Ensure proper file organization following feature-based architecture 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 882e8ab commit 8296302

File tree

32 files changed

+167
-37
lines changed

32 files changed

+167
-37
lines changed

src/App.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,20 @@ import React, { useEffect } from 'react';
44
import { TooltipProvider } from './components/ui/BetterTooltip';
55

66
// Providers
7-
import { AuthProvider } from './features/auth/AuthProvider';
7+
import { AuthProvider } from './features/auth/context/AuthProvider';
88
import { EntriesProvider } from './features/statements/context/EntriesProvider';
9-
import { QuestionsProvider } from './providers/QuestionsProvider';
10-
import { HelpProvider } from './components/ui/helpCenter';
9+
import { QuestionsProvider } from './features/questions/context/QuestionsProvider';
10+
import { HelpProvider } from './features/help';
1111

1212
// Components
1313
import LoginPage from './features/auth/components/LoginPage';
14-
import Header from './layouts/components/Header';
15-
import MainPage from './layouts/components/MainPage';
14+
import { Header, MainPage } from './components/layout';
1615
import MockNotification from './features/auth/components/MockNotification';
1716

1817
// Hooks and Utilities
1918
import { useEntries } from './features/statements/hooks/useEntries';
2019
import { useAuth } from './features/auth/api/hooks';
21-
import { handleMagicLinkVerification } from './features/auth/authUtils';
20+
import { handleMagicLinkVerification } from './features/auth/utils/authUtils';
2221

2322
// Outer Component: Responsible only for setting up the environment (the providers) for the rest of the app.
2423
const AppContent: React.FC = () => {
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
// src/components/Header.tsx
1+
// src/components/layout/Header.tsx
22
import React, { useState } from 'react';
3-
import { useEntries } from '../../features/statements/hooks/useEntries';
4-
import SmallCircularQuestionCounter from '../../components/ui/questionCounter/SmallCircularQuestionCounter';
5-
import UserDataModal from '../../components/modals/UserDataModal';
6-
// import { Tooltip, TooltipTrigger, TooltipContent } from '../../components/ui/better-tooltip';
3+
import { useEntries } from '@/features/statements';
4+
import { SmallCircularQuestionCounter } from '@/components/ui';
5+
import { UserDataModal } from '@/components/modals';
6+
// import { Tooltip, TooltipTrigger, TooltipContent } from '@/components/ui';
77

88
const Header: React.FC = () => {
99
const { data } = useEntries();
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import {
55
Tooltip,
66
TooltipTrigger,
77
TooltipContent,
8-
} from '../../components/ui/BetterTooltip';
9-
import StatementList from '../../features/statements/components/StatementList';
10-
import { useEntries } from '../../features/statements/hooks/useEntries';
11-
import { Button } from '../../components/ui/Button';
8+
Button
9+
} from '@/components/ui';
10+
import { StatementList } from '@/features/statements/components';
11+
import { useEntries } from '@/features/statements';
1212
import { Mail } from 'lucide-react';
13-
import StatementWizard from '../../features/wizard/components/StatementWizard';
14-
import ShareEmailModal from '../../components/modals/ShareEmailModal';
15-
// import TestStatementButton from '../../components/debug/TestButton';
13+
import { StatementWizard } from '@/features/wizard';
14+
import { ShareEmailModal } from '@/components/modals';
15+
// import TestStatementButton from '@/components/debug/TestButton';
1616
import Footer from './Footer';
1717

1818
const MainPage: React.FC = () => {

src/components/layout/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* Layout Components Module
3+
*
4+
* Provides the main structural components for page layout,
5+
* including the overall app container, header, and footer.
6+
*/
7+
8+
export { default as Header } from './Header';
9+
export { default as Footer } from './Footer';
10+
export { default as MainPage } from './MainPage';

src/components/modals/index.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/**
2+
* Modal Components Module
3+
*
4+
* Provides reusable modal dialog components for various purposes
5+
* throughout the application.
6+
*/
7+
8+
export { default as GratitudeModal } from './GratitudeModal';
9+
export { default as PrivacyModal } from './PrivacyModal';
10+
export { default as ShareEmailModal } from './ShareEmailModal';
11+
export { default as TermsModal } from './TermsModal';
12+
export { default as UserDataModal } from './UserDataModal';

src/components/ui/Dropdown.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,15 @@ interface SimpleDropdownMenuContentProps extends React.HTMLAttributes<HTMLDivEle
1616
children: React.ReactNode;
1717
className?: string;
1818
sideOffset?: number;
19+
align?: string;
1920
}
2021

2122
interface SimpleDropdownMenuItemProps extends React.HTMLAttributes<HTMLDivElement> {
2223
children: React.ReactNode;
2324
className?: string;
2425
onClick?: (e: React.MouseEvent) => void;
26+
disabled?: boolean;
27+
title?: string;
2528
}
2629

2730
interface SimpleDropdownMenuSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {

src/components/ui/index.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* UI Components Module
3+
*
4+
* Provides reusable UI components that can be used across the application.
5+
* These components are the building blocks for more complex components.
6+
*/
7+
8+
// Export individual UI components
9+
export { Button } from './Button';
10+
export { Input } from './Input';
11+
export { Slot } from './Slot';
12+
export { ConfirmationDialog } from './ConfirmationDialog';
13+
14+
// Export dialog components
15+
export {
16+
SimpleDialog,
17+
SimpleDialogContent,
18+
SimpleDialogTitle,
19+
SimpleDialogDescription,
20+
SimpleDialogFooter,
21+
SimpleDialogHeader
22+
} from './Dialog';
23+
24+
// Export dropdown components
25+
export {
26+
SimpleDropdownMenu,
27+
SimpleDropdownMenuTrigger,
28+
SimpleDropdownMenuContent,
29+
SimpleDropdownMenuItem,
30+
SimpleDropdownMenuSeparator
31+
} from './Dropdown';
32+
33+
// Export tooltip components
34+
export {
35+
Tooltip,
36+
TooltipTrigger,
37+
TooltipContent,
38+
TooltipProvider
39+
} from './BetterTooltip';
40+
41+
// Export question counter components
42+
export { default as QuestionCounter } from './questionCounter/QuestionCounter';
43+
export { default as LargeCircularQuestionCounter } from './questionCounter/LargeCircularQuestionCounter';
44+
export { default as SmallCircularQuestionCounter } from './questionCounter/SmallCircularQuestionCounter';

src/features/auth/api/hooks/useAuth.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useContext } from 'react';
2-
import { AuthContext } from '../../AuthContext';
2+
import { AuthContext } from '../../context/AuthContext';
33

44
export const useAuth = () => {
55
const context = useContext(AuthContext);

src/features/auth/components/LoginPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { useEntries } from '../../statements/hooks/useEntries';
66
import MagicLinkForm from './MagicLinkForm';
77
import { Input } from '../../../components/ui/input';
88
import { Button } from '../../../components/ui/button';
9-
import { handleMagicLinkVerification } from '../authUtils';
9+
import { handleMagicLinkVerification } from '../utils/authUtils';
1010
import { Loader2 } from 'lucide-react';
1111
import PrivacyModal from '../../../components/modals/PrivacyModal';
1212
import TermsModal from '../../../components/modals/TermsModal';

0 commit comments

Comments
 (0)