Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions .cursor/settings.json

This file was deleted.

2 changes: 1 addition & 1 deletion .dependency-cruiser.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ module.exports = {
collapsePattern: 'node_modules/(?:@[^/]+/[^/]+|[^/]+)',
},
archi: {
collapsePattern: '^(?:features|ui|di|convex|app|types)/[^/]+|node_modules/(?:@[^/]+/[^/]+|[^/]+)',
collapsePattern: '^(?:features|di|convex|app|types)/[^/]+|node_modules/(?:@[^/]+/[^/]+|[^/]+)',
},
text: {
highlightFocused: true,
Expand Down
3 changes: 2 additions & 1 deletion .env.local.sample
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
CONVEX_DEPLOYMENT=
EXPO_PUBLIC_CONVEX_URL=
EXPO_PUBLIC_CONVEX_URL=
SENTRY_AUTH_TOKEN=
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,7 @@ plan.md
plans/

# architecture
arch-report.html
arch-report.html

# vscode
.vscode/
28 changes: 0 additions & 28 deletions .vscode/settings.json

This file was deleted.

5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
<div align="center">
<img src="ui/assets/images/logo_round.png" width="94" height="94" alt="HolidAI Icon" style="border-radius: 50%;">
<h1>
HolidAI
</h1>
<img src="features/core/ui/assets/images/logo_round.png" width="94" height="94" alt="HolidAI Icon" style="border-radius: 50%;">
</div>

A smart travel planning assistant that leverages Google Gemini AI to create personalized trip itineraries. Simply input your destination, travel dates, budget, and number of travelers to receive customized travel plans tailored specifically to your needs - eliminating hours of research and planning.
Expand Down
14 changes: 7 additions & 7 deletions app.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
"slug": "holidai",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./ui/assets/images/icon.png",
"icon": "./features/core/ui/assets/images/icon.png",
"scheme": "holidai",
"userInterfaceStyle": "automatic",
"splash": {
"image": "./ui/assets/images/logo_round.png",
"image": "./features/core/ui/assets/images/logo_round.png",
"resizeMode": "contain",
"backgroundColor": "#220059"
},
Expand All @@ -21,14 +21,14 @@
"package": "com.app.travelplanner",
"googleServicesFile": "./google-services.json",
"adaptiveIcon": {
"foregroundImage": "./ui/assets/images/android-icon.png",
"foregroundImage": "./features/core/ui/assets/images/android-icon.png",
"backgroundColor": "#220059"
}
},
"web": {
"bundler": "metro",
"output": "static",
"favicon": "./ui/assets/images/favicon.png"
"favicon": "./features/core/ui/assets/images/favicon.png"
},
"plugins": [
"expo-router",
Expand All @@ -53,13 +53,13 @@
"expo-splash-screen",
{
"backgroundColor": "#220059",
"image": "./ui/assets/images/logo_round.png",
"image": "./features/core/ui/assets/images/logo_round.png",
"dark": {
"image": "./ui/assets/images/logo_round.png",
"image": "./features/core/ui/assets/images/logo_round.png",
"backgroundColor": "#220059"
},
"ios": {
"imageWidth": 150,
"imageWidth": 100,
"resizeMode": "contain"
},
"android": {
Expand Down
7 changes: 1 addition & 6 deletions app/(main)/(authenticated)/(tabs)/_layout.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
import { navigationService } from '@/features/core/navigation';
import { CustomTabButton, CustomTabButtonWithText, colors, icons, shadows, spacing } from '@/features/core/ui';
import { useStartNewTrip } from '@/features/trips';
import { CustomTabButton } from '@/ui/components/composite/CustomTabButton/CustomTabButton';
import { CustomTabButtonWithText } from '@/ui/components/composite/CustomTabButtonWithText/CustomTabButtonWithText';
import { colors } from '@/ui/style/colors';
import { spacing } from '@/ui/style/dimensions/spacing';
import { icons } from '@/ui/style/icons';
import { shadows } from '@/ui/style/shadows';
import * as Haptics from 'expo-haptics';
import { TabList, TabSlot, TabTrigger, Tabs } from 'expo-router/ui';
import { useTranslation } from 'react-i18next';
Expand Down
2 changes: 1 addition & 1 deletion app/(main)/(authenticated)/_layout.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { GenericCrashView } from '@/features/core/error/pages';
import { Routes, Stacks, screenOptions } from '@/features/core/navigation';
import { GenericCrashView } from '@/ui/components/errors/GenericCrashView/GenericCrashView';
import { useAuth } from '@clerk/clerk-expo';
import { type ErrorBoundaryProps, Redirect, Stack } from 'expo-router';

Expand Down
3 changes: 1 addition & 2 deletions app/(main)/(authenticated)/create-trip/_layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Routes, navigationService } from '@/features/core/navigation';
import { CustomHeader } from '@/ui/components/composite/CustomHeader/CustomHeader';
import { icons } from '@/ui/style/icons';
import { CustomHeader, icons } from '@/features/core/ui';
import { Stack } from 'expo-router';

export default function CreateTripLayout() {
Expand Down
3 changes: 1 addition & 2 deletions app/(main)/(authenticated)/home-page/_layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Routes, navigationService } from '@/features/core/navigation';
import { CustomHeader } from '@/ui/components/composite/CustomHeader/CustomHeader';
import { icons } from '@/ui/style/icons';
import { CustomHeader, icons } from '@/features/core/ui';
import { Stack } from 'expo-router';

export default function HomePageLayout() {
Expand Down
3 changes: 1 addition & 2 deletions app/(main)/(authenticated)/profile/_layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Routes, navigationService } from '@/features/core/navigation';
import { CustomHeader } from '@/ui/components/composite/CustomHeader/CustomHeader';
import { icons } from '@/ui/style/icons';
import { CustomHeader, icons } from '@/features/core/ui';
import { Stack } from 'expo-router';

export default function ProfileLayout() {
Expand Down
2 changes: 1 addition & 1 deletion app/(main)/(login)/_layout.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Routes } from '@/features/core/navigation';
import { CustomHeader } from '@/ui/components/composite/CustomHeader/CustomHeader';
import { CustomHeader } from '@/features/core/ui';
import { Stack } from 'expo-router';

export default function LoginLayout() {
Expand Down
19 changes: 9 additions & 10 deletions app/_layout.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import { RootAppCrashView } from '@/features/core/error/pages';
import { Stacks, screenOptions } from '@/features/core/navigation';
import { queryClient } from '@/features/core/query';
import { initSentry, registerNavigationContainer, wrap } from '@/features/core/sentry';
import { initI18n } from '@/features/core/translations';
import { RootAppCrashView } from '@/ui/components/errors/RootAppCrashView/RootAppCrashView';
import { ToastProvider } from '@/ui/components/providers/ToastProvider';
import { fontsConfig } from '@/ui/style/fontFamily';
import { ToastProvider, fontsConfig } from '@/features/core/ui';
import { ClerkLoaded, ClerkProvider, useAuth } from '@clerk/clerk-expo';
import { tokenCache } from '@clerk/clerk-expo/token-cache';
import { QueryClientProvider } from '@tanstack/react-query';
Expand Down Expand Up @@ -53,13 +52,13 @@ export default wrap(function RootLayout() {
});

const [welcomeAssets, welcomeAssetsError] = useAssets([
require('@/ui/assets/images/welcome_1.jpg'),
require('@/ui/assets/images/welcome_2.jpg'),
require('@/ui/assets/images/welcome_3.jpg'),
require('@/ui/assets/images/welcome_4.jpg'),
require('@/ui/assets/images/welcome_5.jpg'),
require('@/ui/assets/images/welcome_6.jpg'),
require('@/ui/assets/images/logo_round.png'),
require('@/features/core/ui/assets/images/welcome_1.jpg'),
require('@/features/core/ui/assets/images/welcome_2.jpg'),
require('@/features/core/ui/assets/images/welcome_3.jpg'),
require('@/features/core/ui/assets/images/welcome_4.jpg'),
require('@/features/core/ui/assets/images/welcome_5.jpg'),
require('@/features/core/ui/assets/images/welcome_6.jpg'),
require('@/features/core/ui/assets/images/logo_round.png'),
]);

const appReady = fontsLoaded && (!!welcomeAssets || !!welcomeAssetsError);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useResetPassword } from '@/features/auth';
import { useResetPassword } from '@/features/auth/facades/useResetPassword';
import { useModalState } from '@/features/core/state';
import { useToast } from '@/features/core/toast';
import { useState } from 'react';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { ModalTemplate } from '@/ui/components/dialogs/ModalTemplate/ModalTemplate';
import { useResetPasswordModalLogic } from '@/ui/components/dialogs/ResetPasswordModal/ResetPasswordModal.logic';
import { ResetPasswordModalBody } from '@/ui/components/dialogs/ResetPasswordModal/components/ResetPasswordModalBody/ResetPasswordModalBody';
import { components } from '@/ui/style/dimensions/components';
import { useResetPasswordModalLogic } from '@/features/auth/ui/components/ResetPasswordModal/ResetPasswordModal.logic';
import { ResetPasswordModalBody } from '@/features/auth/ui/components/ResetPasswordModal/components/ResetPasswordModalBody/ResetPasswordModalBody';
import { ModalTemplate, components } from '@/features/core/ui';

export const ResetPasswordModal = () => {
const {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { spacing } from '@/ui/style/dimensions/spacing';
import { spacing } from '@/features/core/ui';
import { StyleSheet } from 'react-native';

export const styles = StyleSheet.create({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { CustomText } from '@/ui/components/basic/CustomText/CustomText';
import { CustomTextInput } from '@/ui/components/basic/CustomTextInput/CustomTextInput';
import { styles } from '@/ui/components/dialogs/ResetPasswordModal/components/ResetPasswordModalBody/ResetPasswordModalBody.style';
import { styles } from '@/features/auth/ui/components/ResetPasswordModal/components/ResetPasswordModalBody/ResetPasswordModalBody.style';
import { CustomText, CustomTextInput } from '@/features/core/ui';
import { type FC, Fragment } from 'react';
import { View } from 'react-native';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { styles } from '@/features/auth/ui/components/WelcomeCard/WelcomeCard.style';
import { components } from '@/ui/style/dimensions/components';
import { components } from '@/features/core/ui';
import { Easing, useAnimatedStyle, useSharedValue, withRepeat, withTiming } from 'react-native-reanimated';
import { match } from 'ts-pattern';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { spacing } from '@/ui/style/dimensions/spacing';
import { shadows } from '@/ui/style/shadows';
import { shadows, spacing } from '@/features/core/ui';
import { StyleSheet } from 'react-native';

export const styles = (
Expand Down
2 changes: 1 addition & 1 deletion features/auth/ui/components/WelcomeCard/WelcomeCard.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useWelcomeCardLogic } from '@/features/auth/ui/components/WelcomeCard/WelcomeCard.logic';
import { CustomImage } from '@/ui/components/basic/CustomImage/CustomImage';
import { CustomImage } from '@/features/core/ui';
import type { ImageProps } from 'expo-image';
import type { FC } from 'react';
import Animated from 'react-native-reanimated';
Expand Down
14 changes: 7 additions & 7 deletions features/auth/ui/components/WelcomeCards/WelcomeCards.logic.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SCREEN_HEIGHT, SCREEN_WIDTH } from '@/ui/style/dimensions/spacing';
import { SCREEN_HEIGHT, SCREEN_WIDTH } from '@/features/core/ui';
import type { ImageProps } from 'expo-image';

export type CardConfig = {
Expand All @@ -19,7 +19,7 @@ export type CardConfig = {
const cards: CardConfig[] = [
{
id: 'welcome-card-1',
image: require('@/ui/assets/images/welcome_1.jpg'),
image: require('@/features/core/ui/assets/images/welcome_1.jpg'),
size: 'small',
withPadding: false,
withBorderRadius: true,
Expand All @@ -30,7 +30,7 @@ const cards: CardConfig[] = [
},
{
id: 'welcome-card-2',
image: require('@/ui/assets/images/welcome_2.jpg'),
image: require('@/features/core/ui/assets/images/welcome_2.jpg'),
size: 'medium',
withPadding: true,
withBorderRadius: true,
Expand All @@ -41,7 +41,7 @@ const cards: CardConfig[] = [
},
{
id: 'welcome-card-3',
image: require('@/ui/assets/images/welcome_3.jpg'),
image: require('@/features/core/ui/assets/images/welcome_3.jpg'),
size: 'large',
withPadding: true,
withBorderRadius: false,
Expand All @@ -53,7 +53,7 @@ const cards: CardConfig[] = [
},
{
id: 'welcome-card-4',
image: require('@/ui/assets/images/welcome_4.jpg'),
image: require('@/features/core/ui/assets/images/welcome_4.jpg'),
size: 'medium',
withPadding: false,
withBorderRadius: true,
Expand All @@ -64,7 +64,7 @@ const cards: CardConfig[] = [
},
{
id: 'welcome-card-5',
image: require('@/ui/assets/images/welcome_5.jpg'),
image: require('@/features/core/ui/assets/images/welcome_5.jpg'),
size: 'medium',
withPadding: false,
withBorderRadius: true,
Expand All @@ -75,7 +75,7 @@ const cards: CardConfig[] = [
},
{
id: 'welcome-card-6',
image: require('@/ui/assets/images/welcome_6.jpg'),
image: require('@/features/core/ui/assets/images/welcome_6.jpg'),
size: 'medium',
withPadding: false,
withBorderRadius: false,
Expand Down
5 changes: 1 addition & 4 deletions features/auth/ui/pages/SignInPage/SignInPage.style.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import { colors } from '@/ui/style/colors';
import { fontSize } from '@/ui/style/dimensions/fontSize';
import { spacing } from '@/ui/style/dimensions/spacing';
import { fontFamily } from '@/ui/style/fontFamily';
import { colors, fontFamily, fontSize, spacing } from '@/features/core/ui';
import { StyleSheet } from 'react-native';

export const styles = StyleSheet.create({
Expand Down
22 changes: 12 additions & 10 deletions features/auth/ui/pages/SignInPage/SignInPage.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import { ResetPasswordModal } from '@/features/auth/ui/components/ResetPasswordModal/ResetPasswordModal';
import { useSignInPageLogic } from '@/features/auth/ui/pages/SignInPage/SignInPage.logic';
import { styles } from '@/features/auth/ui/pages/SignInPage/SignInPage.style';
import { Routes } from '@/features/core/navigation';
import { ButtonType } from '@/ui/components/basic/CustomButton/CustomButton.logic';
import { CustomButtonLarge } from '@/ui/components/basic/CustomButton/CustomButtonLarge';
import { CustomText } from '@/ui/components/basic/CustomText/CustomText';
import { CustomTextButton } from '@/ui/components/basic/CustomTextButton/CustomTextButton';
import { CustomTextInput } from '@/ui/components/basic/CustomTextInput/CustomTextInput';
import { CustomScrollView } from '@/ui/components/composite/CustomScrollView/CustomScrollView';
import { ActionModal } from '@/ui/components/dialogs/ActionModal/ActionModal';
import { InfoModal } from '@/ui/components/dialogs/InfoModal/InfoModal';
import { ResetPasswordModal } from '@/ui/components/dialogs/ResetPasswordModal/ResetPasswordModal';
import { BasicView } from '@/ui/components/view/BasicView/BasicView';
import {
ActionModal,
BasicView,
ButtonType,
CustomButtonLarge,
CustomScrollView,
CustomText,
CustomTextButton,
CustomTextInput,
InfoModal,
} from '@/features/core/ui';
import { View } from 'react-native';

export const SignInPage = () => {
Expand Down
6 changes: 1 addition & 5 deletions features/auth/ui/pages/SignUpPage/SignUpPage.style.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
import { PlatformOS } from '@/ui/PlatformOS';
import { colors } from '@/ui/style/colors';
import { fontSize } from '@/ui/style/dimensions/fontSize';
import { spacing } from '@/ui/style/dimensions/spacing';
import { fontFamily } from '@/ui/style/fontFamily';
import { PlatformOS, colors, fontFamily, fontSize, spacing } from '@/features/core/ui';
import { Platform, StyleSheet } from 'react-native';

export const styles = StyleSheet.create({
Expand Down
Loading
Loading