Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
8679621
format
GSTJ Jun 28, 2025
116b2e3
fixing
GSTJ Jun 28, 2025
6f9b896
update
GSTJ Jun 28, 2025
040f8b1
fix
GSTJ Jun 28, 2025
6b9ad8e
format fix
GSTJ Jun 28, 2025
2325d37
dedupe
GSTJ Jun 28, 2025
609b328
improving
GSTJ Jun 28, 2025
1828685
remove ref
GSTJ Jun 28, 2025
8937b85
fix
GSTJ Jun 28, 2025
f1abef3
updating
GSTJ Jun 28, 2025
f4faab4
fix
GSTJ Jun 28, 2025
4f455ad
upgrade pkgs
GSTJ Jun 28, 2025
7e6717d
upgrade
GSTJ Jun 28, 2025
ef1968b
lint
GSTJ Jun 28, 2025
080da19
fix
GSTJ Jun 28, 2025
818c5bd
format
GSTJ Jun 28, 2025
c065614
fix
GSTJ Jun 28, 2025
1f8b52e
fix
GSTJ Jun 28, 2025
f879530
fix
GSTJ Jun 28, 2025
e4c147a
fix
GSTJ Jun 28, 2025
d195e49
fixes
GSTJ Jun 28, 2025
4f222fa
patch
GSTJ Jun 28, 2025
a21c7c1
fix
GSTJ Jun 28, 2025
03560d6
fix
GSTJ Jun 28, 2025
e7a7edc
bump
GSTJ Jun 28, 2025
abc840a
fix
GSTJ Jun 28, 2025
f5c3b16
fix
GSTJ Jun 28, 2025
365f50e
fixes
GSTJ Jun 28, 2025
ab37d31
fixes
GSTJ Jun 28, 2025
47c827a
fix
GSTJ Jun 28, 2025
42eed38
fixes
GSTJ Jun 28, 2025
1a97a6e
fix
GSTJ Jun 28, 2025
a7b62db
fix
GSTJ Jun 28, 2025
ed0d2f1
fix
GSTJ Jun 28, 2025
6d1d8e8
fix
GSTJ Jun 28, 2025
d3a3a3d
fix
GSTJ Jun 28, 2025
b02095b
fix
GSTJ Jun 28, 2025
b654611
improve
GSTJ Jun 28, 2025
070d530
fix
GSTJ Jun 28, 2025
5b0cfd5
fixes
GSTJ Jun 28, 2025
ca3a59c
format
GSTJ Jun 28, 2025
358bea8
yeah
GSTJ Jun 28, 2025
b2dd55a
fix
GSTJ Jun 28, 2025
4eb3e8a
improve
GSTJ Jun 28, 2025
4095f0f
improve
GSTJ Jun 28, 2025
2646ce1
fix
GSTJ Jun 28, 2025
a467089
fix
GSTJ Jun 28, 2025
51acc97
comment
GSTJ Jun 28, 2025
d45d7d6
improve
GSTJ Jun 28, 2025
5311dea
fix
GSTJ Jun 28, 2025
ebe2eb5
improve
GSTJ Jun 28, 2025
0b8d184
fixing
GSTJ Jun 28, 2025
6a69be4
improve
GSTJ Jun 28, 2025
6ee2fa0
fix
GSTJ Jun 28, 2025
e632083
fix
GSTJ Jun 29, 2025
fffc101
fixes
GSTJ Jun 29, 2025
0c79e39
improve
GSTJ Jun 29, 2025
7b53ab2
improve
GSTJ Jun 29, 2025
5c99abd
fixing
GSTJ Jun 29, 2025
e5871d2
IMPROVE
GSTJ Jun 29, 2025
e2a76a4
fixing
GSTJ Jun 29, 2025
19573ac
FIXES
GSTJ Jun 29, 2025
ba92f1e
fixes
GSTJ Jun 29, 2025
13ef119
fix?
GSTJ Jun 29, 2025
42b882e
fix
GSTJ Jun 29, 2025
0d23444
FIX
GSTJ Jun 29, 2025
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
1 change: 1 addition & 0 deletions .github/workflows/branch-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ concurrency:

jobs:
checkup:
if: github.event.pull_request.draft != true
name: Typecheck, Lint and Format
runs-on: ubuntu-latest
steps:
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20.16
22.14
2 changes: 0 additions & 2 deletions apps/mobile/.eslintignore

This file was deleted.

7 changes: 0 additions & 7 deletions apps/mobile/.eslintrc

This file was deleted.

27 changes: 2 additions & 25 deletions apps/mobile/app.config.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { ExpoConfig } from "expo/config";
import type { ExpoConfig } from "expo/config";

const config: ExpoConfig = {
/**
* Always update the version when making a native change
* That affects eas updates and makes sure the app doesn't
* break when updating Over The Air
*/
version: "1.3.1",
version: "1.4.0",
runtimeVersion: {
policy: "appVersion"
},
Expand Down Expand Up @@ -183,20 +183,6 @@ const config: ExpoConfig = {
apiKey: process.env.EXPO_PUBLIC_ANDROID_GOOGLE_MAPS_API_KEY
}
}
// intentFilters: [
// {
// action: 'VIEW',
// autoVerify: true,
// data: [
// {
// scheme: 'https',
// host: '*.pegada.app',
// pathPrefix: '/',
// },
// ],
// category: ['BROWSABLE', 'DEFAULT'],
// },
// ],
},
userInterfaceStyle: "automatic",
locales: {
Expand All @@ -222,17 +208,8 @@ const config: ExpoConfig = {
usesNonExemptEncryption: false
},
bundleIdentifier: "app.pegada"
// associatedDomains: [
// 'applinks:pegada.app',
// 'applinks:www.pegada.app',
// ],
},
packagerOpts: {
config: "metro.config.js",
sourceExts: ["ts", "tsx", "js", "jsx", "json", "wasm", "svg"]
},
extra: {
oneSignalAppId: "",
bugsnag: {
apiKey: process.env.EXPO_PUBLIC_BUGSNAG_API_KEY
},
Expand Down
38 changes: 38 additions & 0 deletions apps/mobile/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import expoConfig from "@pegada/eslint-config/expo";

// Additional ignore patterns specific to the mobile package. These prevent ESLint
// from attempting to parse React-Native's large JS bundles inside node_modules
// as well as local build/config files that are not part of the source.

/** @type {import('eslint').Linter.Config} */
const packageOverrides = {
ignores: ["**/node_modules/**", "*.config.js", "*.config.mjs", "*.yml"]
};

/** @type {import('typescript-eslint').Config} */
export default [
...expoConfig,
{
files: ["**/*.ts", "**/*.tsx"],
rules: {
"@typescript-eslint/no-unnecessary-condition": "off",
"@typescript-eslint/no-extraneous-class": "off", // That's good, keep it
"@shopify/jsx-no-hardcoded-content": "off", // That's good, keep it
"@typescript-eslint/no-confusing-void-expression": "off", // That's good, keep it
"@typescript-eslint/no-unsafe-enum-comparison": "off", // That's good, keep it
"@typescript-eslint/consistent-type-definitions": ["error", "interface"],
"@typescript-eslint/no-misused-promises": "error",
"react/no-unstable-nested-components": "error",
"react-native/no-inline-styles": "off", // That's fine, keep it
"@typescript-eslint/non-nullable-type-assertion-style": "error",
"import/no-cycle": "off" // This one is fine
}
},
{
files: ["src/services/config.ts", "app.config.ts"],
rules: {
"no-restricted-syntax": "off"
}
},
packageOverrides
];
163 changes: 83 additions & 80 deletions apps/mobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"version": "0.1.0",
"name": "@pegada/mobile",
"main": "index.js",
"type": "module",
"private": true,
"installConfig": {
"hoistingLimits": "workspaces"
Expand Down Expand Up @@ -29,109 +30,111 @@
"eas-build-on-success": "npx bugsnag-eas-build-on-success"
},
"dependencies": {
"@amplitude/ampli": "^1.35.0",
"@amplitude/analytics-react-native": "^1.4.9",
"@bugsnag/expo": "^51.0.0",
"@bugsnag/plugin-react": "^7.25.0",
"@expo/config-types": "^51.0.2",
"@gorhom/bottom-sheet": "^4.6.4",
"@hookform/resolvers": "^3.9.0",
"@amplitude/ampli": "^1.36.2",
"@amplitude/analytics-react-native": "^1.4.13",
"@bugsnag/expo": "^53.0.0",
"@bugsnag/plugin-react": "^8.4.0",
"@expo/config-types": "^53.0.4",
"@gorhom/bottom-sheet": "^5.1.6",
"@hookform/resolvers": "5.0.1",
"@pegada/eslint-config": "workspace:*",
"@pegada/shared": "workspace:*",
"@ptomasroos/react-native-multi-slider": "^2.2.2",
"@react-native-anywhere/polyfill-base64": "0.0.1-alpha.0",
"@react-native-async-storage/async-storage": "1.23.1",
"@react-native-community/netinfo": "11.3.1",
"@react-navigation/elements": "^1.3.31",
"@react-navigation/native": "^6.1.18",
"@reduxjs/toolkit": "^2.2.7",
"@shopify/flash-list": "1.6.4",
"@react-native-async-storage/async-storage": "2.1.2",
"@react-native-community/netinfo": "11.4.1",
"@react-navigation/elements": "^2.5.2",
"@react-navigation/native": "^7.1.14",
"@reduxjs/toolkit": "^2.8.2",
"@shopify/flash-list": "1.7.6",
"@styled/typescript-styled-plugin": "^1.0.1",
"@tanstack/react-query": "^5.51.21",
"@trpc/client": "11.0.0-rc.477",
"@trpc/react-query": "11.0.0-rc.477",
"@trpc/server": "11.0.0-rc.477",
"color": "^4.2.3",
"date-fns": "^3.6.0",
"expo": "^51.0.24",
"expo-blur": "~13.0.2",
"expo-build-properties": "~0.12.4",
"expo-constants": "~16.0.2",
"expo-crypto": "~13.0.2",
"expo-device": "~6.0.2",
"expo-file-system": "~17.0.1",
"expo-font": "~12.0.9",
"expo-image": "~1.12.13",
"expo-image-manipulator": "^12.0.5",
"expo-image-picker": "~15.0.7",
"expo-insights": "^0.7.0",
"expo-linear-gradient": "~13.0.2",
"expo-linking": "~6.3.1",
"expo-localization": "~15.0.3",
"expo-location": "~17.0.1",
"expo-notifications": "^0.28.15",
"expo-router": "^3.5.20",
"expo-secure-store": "^13.0.2",
"expo-splash-screen": "~0.27.5",
"expo-status-bar": "~1.12.1",
"expo-store-review": "~7.0.2",
"expo-system-ui": "~3.0.7",
"expo-tracking-transparency": "~4.0.2",
"expo-updates": "~0.25.21",
"expo-web-browser": "~13.0.3",
"i18next": "^23.12.2",
"@tanstack/react-query": "^5.81.5",
"@trpc/client": "11.4.3",
"@trpc/react-query": "11.4.3",
"@trpc/server": "11.4.3",
"babel-plugin-react-compiler": "19.0.0-beta-af1b7da-20250417",
"color": "^5.0.0",
"date-fns": "^4.1.0",
"expo": "^53.0.13",
"expo-blur": "~14.1.5",
"expo-build-properties": "~0.14.6",
"expo-constants": "~17.1.6",
"expo-crypto": "~14.1.5",
"expo-device": "~7.1.4",
"expo-file-system": "~18.1.10",
"expo-font": "~13.3.1",
"expo-image": "~2.3.0",
"expo-image-manipulator": "^13.1.7",
"expo-image-picker": "~16.1.4",
"expo-insights": "^0.9.3",
"expo-linear-gradient": "~14.1.5",
"expo-linking": "~7.1.5",
"expo-localization": "~16.1.5",
"expo-location": "~18.1.5",
"expo-notifications": "^0.31.3",
"expo-router": "^5.1.1",
"expo-secure-store": "^14.2.3",
"expo-splash-screen": "~0.30.9",
"expo-status-bar": "~2.2.3",
"expo-store-review": "~8.1.5",
"expo-system-ui": "~5.0.9",
"expo-tracking-transparency": "~5.2.4",
"expo-updates": "~0.28.15",
"expo-web-browser": "~14.2.0",
"i18next": "^25.2.1",
"immer": "^10.1.1",
"jwt-decode": "^4.0.0",
"lodash": "^4.17.21",
"lottie-react-native": "6.7.0",
"react": "18.3.1",
"react-dom": "18.2.0",
"react-error-boundary": "^4.0.13",
"react-hook-form": "7.52.2",
"react-i18next": "^15.0.0",
"react-native": "0.74.3",
"react-native-draggable-grid": "^2.2.1",
"react-native-gesture-handler": "~2.16.2",
"lottie-react-native": "7.2.2",
"react": "19.0.0",
"react-dom": "19.0.0",
"react-error-boundary": "^6.0.0",
"react-hook-form": "7.55.0",
"react-i18next": "^15.5.3",
"react-native": "0.79.4",
"react-native-draggable-grid": "^2.2.2",
"react-native-gesture-handler": "~2.24.0",
"react-native-get-random-values": "^1.11.0",
"react-native-google-mobile-ads": "^14.2.1",
"react-native-magic-modal": "^5.1.16",
"react-native-google-mobile-ads": "^15.4.0",
"react-native-magic-modal": "^6.1.0",
"react-native-magic-toast": "^0.3.1",
"react-native-maps": "1.14.0",
"react-native-maps": "1.20.1",
"react-native-mime-types": "^2.5.0",
"react-native-purchases": "^8.0.0",
"react-native-reanimated": "~3.10.1",
"react-native-safe-area-context": "4.10.5",
"react-native-screens": "~3.31.1",
"react-native-svg": "^15.2.0",
"react-native-svg-transformer": "^1.5.0",
"react-native-web": "~0.19.12",
"react-redux": "^9.1.2",
"react-native-purchases": "^8.11.7",
"react-native-reanimated": "~3.17.5",
"react-native-safe-area-context": "5.4.0",
"react-native-screens": "~4.11.1",
"react-native-svg": "^15.11.2",
"react-native-svg-transformer": "^1.5.1",
"react-native-web": "~0.20.0",
"react-redux": "^9.2.0",
"reduce-reducers": "^1.0.4",
"redux": "^5.0.1",
"redux-saga": "^1.3.0",
"reselect": "^5.1.1",
"styled-components": "6.1.11",
"superjson": "^2.2.1",
"styled-components": "6.1.19",
"superjson": "^2.2.2",
"typesafe-actions": "^5.1.0",
"uuid": "^10.0.0",
"zod": "3.23.8"
"uuid": "^11.1.0",
"zod": "3.24.2"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@bugsnag/plugin-expo-eas-sourcemaps": "^51.0.0",
"@babel/core": "^7.27.7",
"@bugsnag/plugin-expo-eas-sourcemaps": "^53.0.0",
"@bugsnag/source-maps": "^2.3.3",
"@pegada/api": "workspace:*",
"@pegada/prettier-config": "workspace:*",
"@pegada/tsconfig": "workspace:*",
"@types/color": "^3.0.6",
"@types/lodash": "^4.17.7",
"@types/react": "^18.2.79",
"@types/react-dom": "~18.2.25",
"@types/react-redux": "^7.1.33",
"@types/react-test-renderer": "^18.3.0",
"@types/color": "^4.2.0",
"@types/lodash": "^4.17.19",
"@types/react": "^19.0.14",
"@types/react-dom": "~19.1.6",
"@types/react-redux": "^7.1.34",
"@types/react-test-renderer": "^19.1.0",
"@types/uuid": "^10.0.0",
"@welldone-software/why-did-you-render": "^8.0.3",
"babel-plugin-styled-components": "^2.1.4"
"@welldone-software/why-did-you-render": "^10.0.1",
"babel-plugin-styled-components": "^2.1.4",
"prettier": "catalog:"
},
"prettier": "@pegada/prettier-config"
}
1 change: 0 additions & 1 deletion apps/mobile/src/ampli/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
/**
Expand Down
44 changes: 15 additions & 29 deletions apps/mobile/src/app/(app)/(tabs)/_layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,26 @@ import Logo from "@/assets/images/Logo";
import Messages from "@/assets/images/Messages";
import Profile from "@/assets/images/Profile";

interface TabBarIconProps {
focused: boolean;
color: string;
}
const getSwipeIcon = ({ color }: { color: string }) => (
<Logo colorStopOne={color} colorStopTwo={color} width={34} height={34} />
);

const getMessagesIcon = ({ color }: { color: string }) => (
<Messages colorStopOne={color} colorStopTwo={color} width={34} height={34} />
);

const getProfileIcon = ({ color }: { color: string }) => (
<Profile colorStopOne={color} colorStopTwo={color} width={34} height={34} />
);

export default () => {
const theme = useTheme();
const insets = useSafeAreaInsets();

return (
<Tabs
sceneContainerStyle={{ backgroundColor: theme.colors.background }}
screenOptions={{
sceneStyle: { backgroundColor: theme.colors.background },
tabBarInactiveTintColor: theme.colors.text,
tabBarActiveTintColor: theme.colors.primary,
tabBarShowLabel: false,
Expand All @@ -39,40 +46,19 @@ export default () => {
<Tabs.Screen
name="swipe"
options={{
tabBarIcon: ({ color }: TabBarIconProps) => (
<Logo
colorStopOne={color}
colorStopTwo={color}
width={34}
height={34}
/>
)
tabBarIcon: getSwipeIcon
}}
/>
<Tabs.Screen
name="messages"
options={{
tabBarIcon: ({ color }: TabBarIconProps) => (
<Messages
colorStopOne={color}
colorStopTwo={color}
width={34}
height={34}
/>
)
tabBarIcon: getMessagesIcon
}}
/>
<Tabs.Screen
name="profile"
options={{
tabBarIcon: ({ color }: TabBarIconProps) => (
<Profile
colorStopOne={color}
colorStopTwo={color}
width={34}
height={34}
/>
)
tabBarIcon: getProfileIcon
}}
/>
</Tabs>
Expand Down
Loading
Loading