Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
6db07d3
THERE IS HOPE
PalaashPandey Jul 27, 2025
1d0101b
fix segmented control patch
bwees Jul 27, 2025
ce3752c
fix: bottom sheet issues
bwees Jul 27, 2025
f2fb4b4
fix type annotation
bwees Jul 27, 2025
f6e50bd
chore: update watchos contents.json
bwees Jul 27, 2025
df53999
chore: tsconfig updates
bwees Jul 27, 2025
b004866
fix: watch does not need an xcprivacy file
bwees Jul 27, 2025
d2169a6
chore: dependency changes
bwees Jul 27, 2025
a39ef33
chore: babel cleanup
bwees Jul 27, 2025
34c6930
fix: rn-maps null crashes
bwees Jul 27, 2025
39905ff
chore: cleanup log
bwees Jul 27, 2025
64e546a
chore: enable eslint
bwees Jul 27, 2025
cddaefc
chore: elsint changes
bwees Jul 27, 2025
4d618d2
chore: install prettier
bwees Jul 27, 2025
c15f1c0
chore: apply prettier changes
bwees Jul 27, 2025
ed107f4
chore: run formatting on save
bwees Jul 27, 2025
74cc7c3
fix: typings for sheets
bwees Jul 28, 2025
23bfa61
fixed segmented control flickering + proper android status bar
PalaashPandey Jul 28, 2025
52d5b1d
chore: linting
bwees Jul 28, 2025
14f68a4
fix: disable prettier changes errors in editor
bwees Jul 28, 2025
5c6e2ac
setup formatting ci with label
bwees Jul 28, 2025
1334390
automatically handles sheet switching + deleted redundant queries
PalaashPandey Aug 3, 2025
304bd70
format
bwees Aug 4, 2025
4839948
lint fixes
bwees Aug 4, 2025
29bb278
prettier the repo
bwees Aug 4, 2025
8f90601
chore: switch to pnpm
bwees Aug 30, 2025
5de8059
chore: formatting
bwees Aug 30, 2025
ea9561b
chore: delete patch for maps
bwees Aug 30, 2025
4e2c9d7
fix: disable new architecture
bwees Aug 30, 2025
49bab0f
fix: actions install pnpm
bwees Aug 30, 2025
8611039
fix: StopCallout text not showing on android + uses selected index fo…
PalaashPandey Aug 30, 2025
249ffd4
fix: handles edge case where 2 directions share the same stop
PalaashPandey Aug 31, 2025
5e3a13b
fix: reverted finding pattern path logic
PalaashPandey Aug 31, 2025
85b6430
fix: android location button higher up
PalaashPandey Aug 31, 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
6 changes: 5 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
## Describe your changes

(provide a description of changes and a overview of solution)

## Issue number and link

(if this PR is in response to a issue, put the link to the issue here)

## Dependency Changes

(place any new libraries or updates to exisiting libraries here, you can check by looking at the changes to `package.json`)

## Checklist before requesting a review

- [ ] I have performed a self-review of my code
- [ ] I have verified that any UI changes I have made work in dark mode
- [ ] All of my GitHub checks have passed
- [ ] I have added any new packages/updates above
- [ ] I have verified that I am not submitting other changes/features outside the scope of my PR
- [ ] I have verified that I am not submitting other changes/features outside the scope of my PR
42 changes: 23 additions & 19 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "Build App and Upload"
name: 'Build App and Upload'

on:
# manual trigger but change to any supported event
Expand All @@ -11,14 +11,13 @@ on:
default: 'all'
type: choice
options:
- all
- ios
- android
- all
- ios
- android

release:
types: [published]


jobs:
build_ios:
runs-on: macos-latest
Expand All @@ -37,22 +36,22 @@ jobs:
run: /usr/bin/xcodebuild -version

- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v4

- name: Install Fastlane and Fix CocoaPods
run: |
sudo gem install cocoapods -v 1.15.2
sudo gem install fastlane -NV
fastlane --version

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'

- name: Install Dependencies
run: npm install
run: pnpm install

- name: Expo Prebuild [iOS]
run: |
npx expo prebuild --platform ios --npm
Expand All @@ -69,7 +68,7 @@ jobs:

build_android:
runs-on: ubuntu-latest

# build for android if platform is android or all, or if triggered by a release
if: github.event_name == 'release' || inputs.buildPlatform == 'all' || inputs.buildPlatform == 'android'

Expand All @@ -87,21 +86,26 @@ jobs:
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '17'

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Install Dependencies
run: npm install
run: pnpm install

- name: Write Google Maps API Key to app.json
run: |
sed -i "s/{{GOOGLE_MAPS_KEY}}/$GOOGLE_MAPS_KEY/g" app.json
env:
GOOGLE_MAPS_KEY: ${{ secrets.GOOGLE_MAPS_KEY }}

- name: Expo Prebuild [Android]
run: |
npx expo prebuild --platform android --npm
Expand Down Expand Up @@ -129,16 +133,16 @@ jobs:
KEY_PASSWORD: ${{ secrets.AAB_PASSWORD }}
STORE_PASSWORD: ${{ secrets.AAB_PASSWORD }}
KEY_PATH: ${{ github.workspace }}/android/app/maroon-rides-release-key.jks

GOOGLE_PLAY_KEY: ${{ secrets.GOOGLE_PLAY_KEY }}
PACKAGE_NAME: "com.maroonrides.maroonrides"
PACKAGE_NAME: 'com.maroonrides.maroonrides'
APP_GRADLE_FILE: ${{ github.workspace }}/android/app/build.gradle

- uses: actions/upload-artifact@v4
with:
name: app-bundle.aab
path: ./android/app/build/outputs/bundle/release/app-release.aab

- name: Set outputs
id: git_sha
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
Expand All @@ -148,4 +152,4 @@ jobs:
env:
GOOGLE_PLAY_KEY: ${{ secrets.GOOGLE_PLAY_KEY }}
RELEASE_NAME: ${{ github.event.release.tag_name || steps.git_sha.outputs.sha_short }}
PACKAGE_NAME: "com.maroonrides.maroonrides"
PACKAGE_NAME: 'com.maroonrides.maroonrides'
52 changes: 52 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Fix formatting

on:
pull_request:
types: [labeled]

permissions: {}

jobs:
format:
runs-on: ubuntu-latest
if: ${{ github.event.label.name == 'ci:format' }}
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Install dependencies
run: pnpm install

- name: Lint with expo
run: npx expo lint --fix

- name: Commit and push
uses: EndBug/add-and-commit
with:
default_author: github_actions
message: 'chore: fix formatting'

- name: Remove label
uses: actions/github-script
if: always()
with:
script: |
github.rest.issues.removeLabel({
issue_number: context.payload.pull_request.number,
owner: context.repo.owner,
repo: context.repo.repo,
name: 'ci:format'
})
19 changes: 14 additions & 5 deletions .github/workflows/tsc.yml → .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@ name: TypeScript Linting
on:
push:
paths-ignore:
- ".github/**"
- "fastlane/**"
- '.github/**'
- 'fastlane/**'
branches:
- main
pull_request:

jobs:
tsc:
lint:
runs-on: ubuntu-latest

steps:
Expand All @@ -20,9 +22,16 @@ jobs:
with:
node-version: 22

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Install dependencies
run: npm install
run: pnpm install

- name: Lint with expo
run: npx expo lint --max-warnings 0

- name: Run TypeScript checks
run: npx tsc

5 changes: 5 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"trailingComma": "all",
"tabWidth": 2,
"singleQuote": true
}
3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["dbaeumer.vscode-eslint"]
}
18 changes: 18 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "always"
},
"eslint.rules.customizations": [
{
"rule": "prettier/prettier",
"severity": "off"
}
]
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Maroon Rides

[![API Canary](https://github.com/Maroon-Rides/canary/actions/workflows/canary.yml/badge.svg)](https://github.com/Maroon-Rides/canary/actions/workflows/canary.yml)

We are building the best native mobile app for the Texas A&M University bus system.


![maroonrides_header](https://github.com/user-attachments/assets/f85ba3ce-9ad9-49cc-aebc-f26d1cee1105)
2 changes: 1 addition & 1 deletion app.d.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
declare module 'moment-strftime';
declare module 'moment-strftime';
23 changes: 14 additions & 9 deletions app.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
{
"expo": {
"name": "Maroon Rides",
"slug": "Maroon Rides",
"slug": "Maroon_Rides",
"version": "1.6.5",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "automatic",
"newArchEnabled": false,
"scheme": "myapp",
"assetBundlePatterns": [
"**/*"
Expand Down Expand Up @@ -82,7 +83,6 @@
"bundler": "metro"
},
"plugins": [
"@config-plugins/detox",
[
"@bacons/apple-targets",
{
Expand All @@ -97,16 +97,21 @@
"locationWhenInUsePermission": "Allow location for map display and route planning"
}
],
["expo-build-properties", {
"android": {
[
"expo-build-properties",
{
"android": {
"compileSdkVersion": 35,
"targetSdkVersion": 35,
"buildToolsVersion": "35.0.0"
},
"ios": {
"deploymentTarget": "13.4"
},
"ios": {
"deploymentTarget": "15.1"
}
}
}]
],
"expo-font",
"expo-router"
]
}
}
}
10 changes: 7 additions & 3 deletions app/_layout.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import { Stack } from 'expo-router';

export default function Layout() {
return <Stack screenOptions={{
headerShown: false
}} />;
return (
<Stack
screenOptions={{
headerShown: false,
}}
/>
);
}
26 changes: 17 additions & 9 deletions app/components/Error.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
import useAppStore from "../data/app_state";
import React from "react";
import useAppStore from '../data/app_state';
import React from 'react';
import { SafeAreaView, Text } from 'react-native';

const Error: React.FC = () => {
const theme = useAppStore((state) => state.theme);
const theme = useAppStore((state) => state.theme);

return (
<SafeAreaView style={{ width: '100%', height: '100%', justifyContent: 'center', alignItems: 'center', backgroundColor: theme.background}}>
<Text style={{color: theme.text}}>Something went wrong!</Text>
</SafeAreaView>
)
}
return (
<SafeAreaView
style={{
width: '100%',
height: '100%',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: theme.background,
}}
>
<Text style={{ color: theme.text }}>Something went wrong!</Text>
</SafeAreaView>
);
};

export default Error;
Loading