Big diff, everything uses the import aliases now

* fix some ts issues created in the process
* move context/ to contexts/ for consistency
main
Christopher Maujean 2 months ago
parent b71f778da2
commit 63621ab968
  1. 42
      src/App.tsx
  2. 4
      src/components/NetworkGraph.tsx
  3. 2
      src/components/account/MyCollectionPage.tsx
  4. 2
      src/components/account/MyHomePage.tsx
  5. 2
      src/components/account/PersonhoodCredentials.tsx
  6. 4
      src/components/account/RCardManagement.tsx
  7. 4
      src/components/account/RCardPrivacySettings.tsx
  8. 4
      src/components/invite/InviteForm.tsx
  9. 6
      src/components/layout/DashboardLayout.tsx
  10. 4
      src/components/notifications/NotificationDropdown.tsx
  11. 4
      src/components/notifications/NotificationItem.tsx
  12. 2
      src/components/onboarding/BasicInfoStep.tsx
  13. 2
      src/components/onboarding/ConnectAccountsStep.tsx
  14. 2
      src/components/tour/GroupTour.tsx
  15. 2
      src/contexts/OnboardingContext.tsx
  16. 2
      src/main.tsx
  17. 16
      src/pages/AccountPage.tsx
  18. 8
      src/pages/ContactListPage.tsx
  19. 6
      src/pages/ContactViewPage.tsx
  20. 14
      src/pages/GroupDetailPage.tsx
  21. 8
      src/pages/GroupInfoPage.tsx
  22. 6
      src/pages/GroupJoinPage.tsx
  23. 4
      src/pages/GroupPage.tsx
  24. 4
      src/pages/ImportPage.tsx
  25. 6
      src/pages/InvitationPage.tsx
  26. 4
      src/pages/NotificationsPage.tsx
  27. 10
      src/pages/OnboardingPage.tsx
  28. 4
      src/pages/SocialContractPage.tsx
  29. 4
      src/services/dataService.ts
  30. 2
      src/services/notificationService.ts
  31. 76
      tsconfig.app.json
  32. 4
      vite.config.ts

@ -1,27 +1,27 @@
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import { ThemeProvider } from '@mui/material/styles';
import CssBaseline from '@mui/material/CssBaseline';
import { OnboardingProvider } from './context/OnboardingContext';
import { DataProvider } from './providers/DataProvider';
import { BrowserNGLdoProvider, useNextGraphAuth } from './lib/nextgraph';
import type { NextGraphAuth } from './types/nextgraph';
import DashboardLayout from './components/layout/DashboardLayout';
import SocialContractPage from './pages/SocialContractPage';
import GroupJoinPage from './pages/GroupJoinPage';
import ImportPage from './pages/ImportPage';
import ContactListPage from './pages/ContactListPage';
import ContactViewPage from './pages/ContactViewPage';
import GroupPage from './pages/GroupPage';
import GroupDetailPage from './pages/GroupDetailPage';
import GroupInfoPage from './pages/GroupInfoPage';
import InvitationPage from './pages/InvitationPage';
import OnboardingPage from './pages/OnboardingPage';
import FeedPage from './pages/FeedPage';
import PostsOffersPage from './pages/PostsOffersPage';
import MessagesPage from './pages/MessagesPage';
import AccountPage from './pages/AccountPage';
import NotificationsPage from './pages/NotificationsPage';
import { createAppTheme } from './theme/theme';
import { OnboardingProvider } from '@/contexts/OnboardingContext';
import { DataProvider } from '@/providers/DataProvider';
import { BrowserNGLdoProvider, useNextGraphAuth } from '@/lib/nextgraph';
import type { NextGraphAuth } from '@/types/nextgraph';
import DashboardLayout from '@/components/layout/DashboardLayout';
import SocialContractPage from '@/pages/SocialContractPage';
import GroupJoinPage from '@/pages/GroupJoinPage';
import ImportPage from '@/pages/ImportPage';
import ContactListPage from '@/pages/ContactListPage';
import ContactViewPage from '@/pages/ContactViewPage';
import GroupPage from '@/pages/GroupPage';
import GroupDetailPage from '@/pages/GroupDetailPage';
import GroupInfoPage from '@/pages/GroupInfoPage';
import InvitationPage from '@/pages/InvitationPage';
import OnboardingPage from '@/pages/OnboardingPage';
import FeedPage from '@/pages/FeedPage';
import PostsOffersPage from '@/pages/PostsOffersPage';
import MessagesPage from '@/pages/MessagesPage';
import AccountPage from '@/pages/AccountPage';
import NotificationsPage from '@/pages/NotificationsPage';
import { createAppTheme } from '@/theme/theme';
import { Container } from '@mui/material';
const theme = createAppTheme('light');

@ -1,8 +1,8 @@
import { useState, useEffect, useRef } from 'react';
import { Box, Typography, Card, CardContent } from '@mui/material';
import { alpha, useTheme } from '@mui/material/styles';
import type { Contact } from '../types/contact';
import { getContactPhotoStyles } from '../utils/photoStyles';
import type { Contact } from '@/types/contact';
import { getContactPhotoStyles } from '@/utils/photoStyles';
interface NetworkNode extends Contact {
x: number;

@ -44,7 +44,7 @@ import {
Send,
AutoAwesome,
} from '@mui/icons-material';
import type { BookmarkedItem, Collection, CollectionFilter, CollectionStats } from '../../types/collection';
import type { BookmarkedItem, Collection, CollectionFilter, CollectionStats } from '@/types/collection';
interface MyCollectionPageProps {
// Props would come from parent component

@ -34,7 +34,7 @@ import {
ShoppingCart,
PostAdd,
} from '@mui/icons-material';
import type { UserContent, ContentFilter, ContentStats, ContentType } from '../../types/userContent';
import type { UserContent, ContentFilter, ContentStats, ContentType } from '@/types/userContent';
interface MyHomePageProps {
// Props would come from parent component

@ -36,7 +36,7 @@ import {
Close,
} from '@mui/icons-material';
import { QRCodeSVG } from 'qrcode.react';
import type { PersonhoodCredentials } from '../../types/personhood';
import type { PersonhoodCredentials } from '@/types/personhood';
interface PersonhoodCredentialsProps {
credentials: PersonhoodCredentials;

@ -30,8 +30,8 @@ import {
Edit,
Delete,
} from '@mui/icons-material';
import type { RCardWithPrivacy } from '../../types/notification';
import { DEFAULT_PRIVACY_SETTINGS } from '../../types/notification';
import type { RCardWithPrivacy } from '@/types/notification';
import { DEFAULT_PRIVACY_SETTINGS } from '@/types/notification';
interface RCardManagementProps {
open: boolean;

@ -21,8 +21,8 @@ import {
Refresh,
VpnKey,
} from '@mui/icons-material';
import type { RCardWithPrivacy, PrivacyLevel, LocationSharingLevel } from '../../types/notification';
import { DEFAULT_PRIVACY_SETTINGS } from '../../types/notification';
import type { RCardWithPrivacy, PrivacyLevel, LocationSharingLevel } from '@/types/notification';
import { DEFAULT_PRIVACY_SETTINGS } from '@/types/notification';
interface RCardPrivacySettingsProps {
rCard: RCardWithPrivacy;

@ -15,8 +15,8 @@ import {
PersonAdd,
ContactPage,
} from '@mui/icons-material';
import { DEFAULT_RCARDS } from '../../types/notification';
import type { Group } from '../../types/group';
import { DEFAULT_RCARDS } from '@/types/notification';
import type { Group } from '@/types/group';
interface InviteFormProps {
open: boolean;

@ -37,9 +37,9 @@ import {
LocationOn,
Public,
} from '@mui/icons-material';
import BottomNavigation from '../navigation/BottomNavigation';
import { notificationService } from '../../services/notificationService';
import type { NotificationSummary } from '../../types/notification';
import BottomNavigation from '@/components/navigation/BottomNavigation';
import { notificationService } from '@/services/notificationService';
import type { NotificationSummary } from '@/types/notification';
const drawerWidth = 280;

@ -15,8 +15,8 @@ import {
Notifications,
MarkEmailRead,
} from '@mui/icons-material';
import type { Notification, NotificationSummary } from '../../types/notification';
import NotificationItem from './NotificationItem';
import type { Notification, NotificationSummary } from '@/types/notification';
import NotificationItem from '@/components/notifications/NotificationItem';
interface NotificationDropdownProps {
notifications: Notification[];

@ -35,8 +35,8 @@ import {
LocationOn,
Public,
} from '@mui/icons-material';
import type { Notification } from '../../types/notification';
import { DEFAULT_RCARDS } from '../../types/notification';
import type { Notification } from '@/types/notification';
import { DEFAULT_RCARDS } from '@/types/notification';
interface NotificationItemProps {
notification: Notification;

@ -10,7 +10,7 @@ import {
InputAdornment
} from '@mui/material';
import { Person, Email, Phone, Business, Work, PhotoCamera } from '@mui/icons-material';
import { useOnboarding } from '../../context/OnboardingContext';
import { useOnboarding } from '@/contexts/OnboardingContext';
const BasicInfoStep = () => {
const { state, updateProfile } = useOnboarding();

@ -27,7 +27,7 @@ import {
Cloud,
Security
} from '@mui/icons-material';
import { useOnboarding } from '../../context/OnboardingContext';
import { useOnboarding } from '@/contexts/OnboardingContext';
const ConnectAccountsStep = () => {
const { state, connectAccount, disconnectAccount } = useOnboarding();

@ -29,7 +29,7 @@ import {
QuestionAnswer,
CheckCircle,
} from '@mui/icons-material';
import type { Group } from '../../types/group';
import type { Group } from '@/types/group';
interface GroupTourProps {
open: boolean;

@ -1,6 +1,6 @@
import { createContext, useContext, useReducer } from 'react';
import type { ReactNode } from 'react';
import type { OnboardingState, OnboardingContextType, UserProfile } from '../types/onboarding';
import type { OnboardingState, OnboardingContextType, UserProfile } from '@/types/onboarding';
const initialState: OnboardingState = {
currentStep: 0,

@ -1,7 +1,7 @@
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
import App from './App.tsx'
import App from '@/App.tsx'
createRoot(document.getElementById('root')!).render(
<StrictMode>

@ -33,14 +33,14 @@ import {
LocationOn,
Public,
} from '@mui/icons-material';
import { DEFAULT_RCARDS, DEFAULT_PRIVACY_SETTINGS } from '../types/notification';
import type { RCardWithPrivacy } from '../types/notification';
import RCardPrivacySettings from '../components/account/RCardPrivacySettings';
import RCardManagement from '../components/account/RCardManagement';
import MyHomePage from '../components/account/MyHomePage';
import MyCollectionPage from '../components/account/MyCollectionPage';
import PersonhoodCredentialsComponent from '../components/account/PersonhoodCredentials';
import type { PersonhoodCredentials } from '../types/personhood';
import { DEFAULT_RCARDS, DEFAULT_PRIVACY_SETTINGS } from '@/types/notification';
import type { RCardWithPrivacy } from '@/types/notification';
import RCardPrivacySettings from '@/components/account/RCardPrivacySettings';
import RCardManagement from '@/components/account/RCardManagement';
import MyHomePage from '@/components/account/MyHomePage';
import MyCollectionPage from '@/components/account/MyCollectionPage';
import PersonhoodCredentialsComponent from '@/components/account/PersonhoodCredentials';
import type { PersonhoodCredentials } from '@/types/personhood';
interface TabPanelProps {
children?: React.ReactNode;

@ -23,7 +23,7 @@ import {
ListItemIcon,
ListItemText
} from '@mui/material';
import NetworkGraph from '../components/NetworkGraph';
import NetworkGraph from '@/components/NetworkGraph';
import {
List as ListIcon,
Hub,
@ -47,9 +47,9 @@ import {
People,
DragIndicator
} from '@mui/icons-material';
import { dataService } from '../services/dataService';
import type { Contact } from '../types/contact';
import { getContactPhotoStyles } from '../utils/photoStyles';
import { dataService } from '@/services/dataService';
import type { Contact } from '@/types/contact';
import { getContactPhotoStyles } from '@/utils/photoStyles';
const ContactListPage = () => {
const [contacts, setContacts] = useState<Contact[]>([]);

@ -32,9 +32,9 @@ import {
CheckCircle,
PersonOutline
} from '@mui/icons-material';
import { dataService } from '../services/dataService';
import type { Contact } from '../types/contact';
import type { Group as GroupType } from '../types/group';
import { dataService } from '@/services/dataService';
import type { Contact } from '@/types/contact';
import type { Group as GroupType } from '@/types/group';
const ContactViewPage = () => {
const { id } = useParams<{ id: string }>();

@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { useParams, useNavigate, useSearchParams } from 'react-router-dom';
import { getContactPhotoStyles } from '../utils/photoStyles';
import { getContactPhotoStyles } from '@/utils/photoStyles';
import {
Typography,
Box,
@ -43,12 +43,12 @@ import {
Fullscreen,
FullscreenExit,
} from '@mui/icons-material';
import { dataService } from '../services/dataService';
import type { Group, GroupPost, GroupLink } from '../types/group';
import PostCreateButton from '../components/PostCreateButton';
import GroupTour from '../components/tour/GroupTour';
import AIResponseRatingComponent, { type AIResponseRating } from '../components/ai/AIResponseRating';
import InviteForm, { type InviteFormData } from '../components/invite/InviteForm';
import { dataService } from '@/services/dataService';
import type { Group, GroupPost, GroupLink } from '@/types/group';
import PostCreateButton from '@/components/PostCreateButton';
import GroupTour from '@/components/tour/GroupTour';
import AIResponseRatingComponent, { type AIResponseRating } from '@/components/ai/AIResponseRating';
import InviteForm, { type InviteFormData } from '@/components/invite/InviteForm';
// Keyframes for pulse animation
const pulse = keyframes`

@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { useParams, useNavigate, useSearchParams } from 'react-router-dom';
import { getContactPhotoStyles } from '../utils/photoStyles';
import { getContactPhotoStyles } from '@/utils/photoStyles';
import {
Typography,
Box,
@ -23,9 +23,9 @@ import {
Public,
Lock,
} from '@mui/icons-material';
import { dataService } from '../services/dataService';
import type { Group } from '../types/group';
import InviteForm, { type InviteFormData } from '../components/invite/InviteForm';
import { dataService } from '@/services/dataService';
import type { Group } from '@/types/group';
import InviteForm, { type InviteFormData } from '@/components/invite/InviteForm';
// Real NAO member data
const getMockMembers = () => [

@ -27,9 +27,9 @@ import {
Public,
Settings
} from '@mui/icons-material';
import { dataService } from '../services/dataService';
import { DEFAULT_RCARDS } from '../types/notification';
import type { Group } from '../types/group';
import { dataService } from '@/services/dataService';
import { DEFAULT_RCARDS } from '@/types/notification';
import type { Group } from '@/types/group';
const GroupJoinPage = () => {
const [group, setGroup] = useState<Group | null>(null);

@ -23,8 +23,8 @@ import {
Lock,
People
} from '@mui/icons-material';
import { dataService } from '../services/dataService';
import type { Group as GroupType } from '../types/group';
import { dataService } from '@/services/dataService';
import type { Group as GroupType } from '@/types/group';
const GroupPage = () => {
const [groups, setGroups] = useState<GroupType[]>([]);

@ -16,8 +16,8 @@ import {
Alert,
} from '@mui/material';
import { LinkedIn, Contacts, CloudDownload, MailOutline } from '@mui/icons-material';
import { dataService } from '../services/dataService';
import type { ImportSource } from '../types/contact';
import { dataService } from '@/services/dataService';
import type { ImportSource } from '@/types/contact';
const ImportPage = () => {
const [importSources, setImportSources] = useState<ImportSource[]>([]);

@ -28,9 +28,9 @@ import {
Groups
} from '@mui/icons-material';
import { QRCodeSVG } from 'qrcode.react';
import { dataService } from '../services/dataService';
import type { Group } from '../types/group';
import type { Contact } from '../types/contact';
import { dataService } from '@/services/dataService';
import type { Group } from '@/types/group';
import type { Contact } from '@/types/contact';
const InvitationPage = () => {
const [invitationUrl, setInvitationUrl] = useState('');

@ -22,8 +22,8 @@ import {
Close,
MarkEmailRead
} from '@mui/icons-material';
import { notificationService } from '../services/notificationService';
import type { Notification, NotificationSummary } from '../types/notification';
import { notificationService } from '@/services/notificationService';
import type { Notification, NotificationSummary } from '@/types/notification';
const NotificationsPage = () => {
const theme = useTheme();

@ -11,11 +11,11 @@ import {
LinearProgress
} from '@mui/material';
import { ArrowBack, ArrowForward } from '@mui/icons-material';
import { useOnboarding } from '../context/OnboardingContext';
import BasicInfoStep from '../components/onboarding/BasicInfoStep';
import ConnectAccountsStep from '../components/onboarding/ConnectAccountsStep';
import { dataService } from '../services/dataService';
import type { Group } from '../types/group';
import { useOnboarding } from '@/contexts/OnboardingContext';
import BasicInfoStep from '@/components/onboarding/BasicInfoStep';
import ConnectAccountsStep from '@/components/onboarding/ConnectAccountsStep';
import { dataService } from '@/services/dataService';
import type { Group } from '@/types/group';
const OnboardingPage = () => {
const { state, nextStep, prevStep, completeOnboarding } = useOnboarding();

@ -28,8 +28,8 @@ import {
Close,
CheckCircle
} from '@mui/icons-material';
import { dataService } from '../services/dataService';
import type { Group } from '../types/group';
import { dataService } from '@/services/dataService';
import type { Group } from '@/types/group';
const SocialContractPage = () => {
const [group, setGroup] = useState<Group | null>(null);

@ -1,5 +1,5 @@
import type { Contact, ImportSource } from '../types/contact';
import type { Group } from '../types/group';
import type { Contact, ImportSource } from '@/types/contact';
import type { Group } from '@/types/group';
export const dataService = {
async getContacts(): Promise<Contact[]> {

@ -3,7 +3,7 @@ import type {
NotificationSummary,
Vouch,
Praise
} from '../types/notification';
} from '@/types/notification';
// Mock data for development
const mockNotifications: Notification[] = [

@ -1,42 +1,44 @@
{
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"target": "ES2022",
"useDefineForClassFields": true,
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"target": "ES2022",
"useDefineForClassFields": true,
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"moduleDetection": "force",
"noEmit": true,
"jsx": "react-jsx",
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"moduleDetection": "force",
"noEmit": true,
"jsx": "react-jsx",
/* Path aliases */
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"@/assets/*": ["src/assets/*"],
"@/components/*": ["src/components/*"],
"@/context/*": ["src/context/*"],
"@/hooks/*": ["src/hooks/*"],
"@/lib/*": ["src/lib/*"],
"@/providers/*": ["src/providers/*"],
"@/services/*": ["src/services/*"],
"@/stores/*": ["src/stores/*"],
"@/types/*": ["src/types/*"],
},
/* Path aliases */
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"@/assets/*": ["src/assets/*"],
"@/components/*": ["src/components/*"],
"@/contexts/*": ["src/contexts/*"],
"@/hooks/*": ["src/hooks/*"],
"@/lib/*": ["src/lib/*"],
"@/pages/*": ["src/pages/*"],
"@/providers/*": ["src/providers/*"],
"@/services/*": ["src/services/*"],
"@/stores/*": ["src/stores/*"],
"@/types/*": ["src/types/*"],
"@/utils/*": ["src/utils/*"]
},
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"erasableSyntaxOnly": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true,
"resolveJsonModule": true
},
"include": ["src", "data"]
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"erasableSyntaxOnly": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true,
"resolveJsonModule": true
},
"include": ["src", "data"]
}

@ -10,13 +10,15 @@ export default defineConfig({
"@": resolve(__dirname, "src"),
"@/assets": resolve(__dirname, "src/assets"),
"@/components": resolve(__dirname, "src/components"),
"@/context": resolve(__dirname, "src/context"),
"@/contexts": resolve(__dirname, "src/contexts"),
"@/hooks": resolve(__dirname, "src/hooks"),
"@/lib": resolve(__dirname, "src/lib"),
"@/pages": resolve(__dirname, "src/pages"),
"@/providers": resolve(__dirname, "src/providers"),
"@/services": resolve(__dirname, "src/services"),
"@/stores": resolve(__dirname, "src/stores"),
"@/types": resolve(__dirname, "src/types"),
"@/utils": resolve(__dirname, "src/utils"),
},
},
assetsInclude: ['**/*.json'],

Loading…
Cancel
Save