diff --git a/app.json b/app.json index 78f7fde6..f12d2e0e 100644 --- a/app.json +++ b/app.json @@ -2,7 +2,7 @@ "expo": { "name": "TAMU SHPE", "slug": "TAMU-SHPE", - "version": "1.0.8", + "version": "1.0.9", "owner": "tamu-shpe", "orientation": "portrait", "icon": "./assets/icon.png", @@ -54,7 +54,7 @@ "permissions": [ "android.permission.RECORD_AUDIO" ], - "versionCode": 67, + "versionCode": 68, "userInterfaceStyle": "automatic" }, "ios": { diff --git a/package.json b/package.json index bcb57c89..18efcdd3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "shpe-app", - "version": "1.0.8", + "version": "1.0.9", "scripts": { "start": "npx expo start --dev-client", "test": "jest --coverage=true --verbose --bail --config ./jest.config.ts", diff --git a/src/screens/events/EventCard.tsx b/src/screens/events/EventCard.tsx index 6076f29f..bb1e99cc 100644 --- a/src/screens/events/EventCard.tsx +++ b/src/screens/events/EventCard.tsx @@ -48,7 +48,7 @@ const EventCard = ({ event, navigation }: { event: SHPEEvent, navigation: any }) {formatDate(event.startTime?.toDate()!)} - {hasPrivileges && ( + {hasPrivileges && event.noPoints && ( { navigation.navigate("QRCode", { event: event }) }} diff --git a/src/screens/events/EventInfo.tsx b/src/screens/events/EventInfo.tsx index 1bb0f286..4a295a62 100644 --- a/src/screens/events/EventInfo.tsx +++ b/src/screens/events/EventInfo.tsx @@ -92,6 +92,11 @@ const EventInfo = ({ navigation }: EventProps) => { const getEventButtonState = (event: SHPEEvent, userEventLog: SHPEEventLog | null): EventButtonState => { const now = new Date(); + //Event does not give points + if (!event?.noPoints){ + return EventButtonState.NO_POINTS; + } + // Event has not started if (now < new Date(startTime!.toDate().getTime() - (startTimeBuffer || 0))) { return EventButtonState.NOT_STARTED; @@ -224,7 +229,7 @@ const EventInfo = ({ navigation }: EventProps) => { - {hasPrivileges && ( + {hasPrivileges && event.noPoints && ( { navigation.navigate("QRCode", { event: event }) @@ -364,6 +369,9 @@ const EventInfo = ({ navigation }: EventProps) => { {eventButtonState === EventButtonState.SIGN_OUT && ( Sign Out )} + {eventButtonState === EventButtonState.NO_POINTS && ( + This event does not give points + )} {eventButtonState === EventButtonState.NOT_STARTED && ( This event has not started )} @@ -471,6 +479,7 @@ enum EventButtonState { RECEIVED_POINTS = "You receive points for this event", SIGN_OUT = "Sign out of this event", SIGN_IN = "Sign in", + NO_POINTS = "No Points for this event" } export type EventInfoScreenRouteProp = RouteProp; diff --git a/src/screens/events/Events.tsx b/src/screens/events/Events.tsx index ddf72299..e1b2108c 100644 --- a/src/screens/events/Events.tsx +++ b/src/screens/events/Events.tsx @@ -358,7 +358,7 @@ const Events = ({ navigation }: EventsProps) => { {formatTime(event.startTime?.toDate()!)} - {hasPrivileges && ( + {hasPrivileges && event.noPoints && ( { navigation.navigate("QRCode", { event: event }) }} className='absolute right-0 top-0 p-2 m-2 rounded-full' diff --git a/src/screens/events/SetSpecificEventDetails.tsx b/src/screens/events/SetSpecificEventDetails.tsx index 4fd03265..f7cbea85 100644 --- a/src/screens/events/SetSpecificEventDetails.tsx +++ b/src/screens/events/SetSpecificEventDetails.tsx @@ -45,6 +45,7 @@ const SetSpecificEventDetails = ({ navigation }: EventProps) => { const [endTimeBuffer, setEndTimeBuffer] = useState(event.endTimeBuffer ?? 20 * 60000); const [hiddenEvent, setHiddenEvent] = useState(event.hiddenEvent ?? undefined); const [isGeneral, setIsGeneral] = useState(event.general ?? false); + const [noPoints, setNoPoints] = useState(event.noPoints ?? undefined); const eventTypeNotification = ["Study Hours", "Workshop", "Volunteer Event", "Social Event", "Intramural Event"] @@ -416,6 +417,28 @@ const SetSpecificEventDetails = ({ navigation }: EventProps) => { /> + + Event No Points + setNoPoints(previousState => !previousState)} + value={noPoints} + /> + + ) => - 1. Pay the { const url = tamuLink?.url?.trim() || ""; if (!url) { @@ -305,8 +305,8 @@ const MemberSHPE = ({ navigation }: NativeStackScreenProps) => }} className='text-primary-blue font-bold text-xl underline' > - chapter dues - , which include a t-shirt. Be sure to take a screenshot of your + t-shirt + , and be sure to take a screenshot of your receipt and upload it below. diff --git a/src/types/events.ts b/src/types/events.ts index 25bfdea6..6ac22b83 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -60,6 +60,8 @@ export abstract class SHPEEvent { public notificationSent?: boolean | null; /** Hide event from Events Screen */ public hiddenEvent?: boolean | null; + /** A flag to indicate if an event should count towards points or not */ + public noPoints?: boolean | null; /** @@ -83,6 +85,7 @@ export abstract class SHPEEvent { this.endTimeBuffer = null; this.startTimeBuffer = null; this.hiddenEvent = false; + this.noPoints = false; } /**