feat: splash text has arrived! (#246)

* feat: minecraft splash text brought to life!

* feat: bringing splash text to more life

* feat: wrong place oops

* feat: more styling and rendering conditionally when no course detected, and new joke

* feat: more splash text whew my wittyness is exhausted

* feat: padding for some finishing touches

* chore: lint

* feat: add more phrases

* chore: prettier

* Update PopupMain.tsx

---------

Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
This commit is contained in:
2024-10-01 22:17:58 -05:00
committed by GitHub
parent b4dd91ad25
commit 9971435716
2 changed files with 35 additions and 11 deletions

View File

@@ -4,7 +4,6 @@ const splashText: string[] = [
'Rec Sports fills up fast, even before the sun reaches its peak.', 'Rec Sports fills up fast, even before the sun reaches its peak.',
"Ah, Jendy's! A taste ever so refined.", "Ah, Jendy's! A taste ever so refined.",
'Fine dining at Jester City Limits, eh?', 'Fine dining at Jester City Limits, eh?',
'Rec Sports fills up fast, even before the sun reaches its peak.',
'RIP Domino, you beloved campus feline.', 'RIP Domino, you beloved campus feline.',
"The year is 2055 and Welch still isn't finished.", "The year is 2055 and Welch still isn't finished.",
'Motivation dropping faster than ur GPA', 'Motivation dropping faster than ur GPA',
@@ -13,14 +12,13 @@ const splashText: string[] = [
'Pain is temporary, GPA is forever.', 'Pain is temporary, GPA is forever.',
"You've Yee'd Your Last Haw.", "You've Yee'd Your Last Haw.",
'lol everything is already waitlisted.', 'lol everything is already waitlisted.',
"At Least You're Not At A&M.", 'Could be worse. Could be A&M.',
'TeXAs iS BaCK GuYZ', // 'TeXAs iS BaCK GuYZ',
'mAke iT yOuR tExAS', 'mAke iT yOuR tExAS',
"'Academically Challenged'", "'Academically Challenged'",
'Does McCombs teach Parseltongue?', 'Does McCombs teach Parseltongue?',
'No Cruce Enfrente Del Bus.', 'No Cruce Enfrente Del Bus.',
'Omae Wa Mou Shindeiru...', 'Omae Wa Mou Shindeiru...',
'Bevo Bucks are the new Bitcoin',
'Every day another brick disappears from Speedway', 'Every day another brick disappears from Speedway',
'The GDC will annex the EER one day', 'The GDC will annex the EER one day',
'Just you wait. Our CNS operatives will topple the EER regime', 'Just you wait. Our CNS operatives will topple the EER regime',
@@ -36,14 +34,15 @@ const splashText: string[] = [
"Arrows of Christ vs Church of Scientology was the crossover we didn't know we needed", "Arrows of Christ vs Church of Scientology was the crossover we didn't know we needed",
'THE WALK SIGN IS ON TO CROSS GUADALUPE AND 21ST', 'THE WALK SIGN IS ON TO CROSS GUADALUPE AND 21ST',
'Days since last GDC door alarm: 0', 'Days since last GDC door alarm: 0',
'Finding a parking spot is like winning the lottery... if the lottery required parallel parking skills.', 'Pay attention. Might learn something.',
'The squirrels are more ambitious than most freshmen during finals week.', 'Long ago, apartment rates stayed together in harmony. Then, everything changed when American Campus Communities Inc attacked.',
'Roll for Initiative!',
'The line at the on-campus Starbucks is longer than your course waitlist.', 'The line at the on-campus Starbucks is longer than your course waitlist.',
'The weather changes more often than your class schedule.', 'The weather changes more often than your class schedule.',
"'Sorry, the PCL is full' is the most heartbreaking message you'll ever receive.", 'Mmm... Brutalist architecture...',
'Getting to class on time is like navigating a maze of construction zones.', 'The course syllabus: more than meets the eye',
"'studying' often means refreshing Canvas every five minutes to see if the professor posted lecture slides.", "'studying' often means refreshing Canvas every five minutes to see if the professor posted lecture slides.",
"'I'll just skip this lecture' often turns into a semester-long habit.", "I'll just skip this lecture and watch the recording later. What's the worst that could happen?",
'The libraries are full of students pretending to study but actually napping with their eyes open.', 'The libraries are full of students pretending to study but actually napping with their eyes open.',
"The 'campus loop' refers to both the bus route and the endless cycle of trying to find your way around campus.", "The 'campus loop' refers to both the bus route and the endless cycle of trying to find your way around campus.",
'The squirrels have mastered the art of begging for food better than most students during finals week.', 'The squirrels have mastered the art of begging for food better than most students during finals week.',
@@ -55,6 +54,13 @@ const splashText: string[] = [
'Finally resolved the UTRP Hackathon issues of 2024', 'Finally resolved the UTRP Hackathon issues of 2024',
'Planner is now adquired by Plus', 'Planner is now adquired by Plus',
'Longhorn-Developers is the best UT Student Org', 'Longhorn-Developers is the best UT Student Org',
'A pen and paper is old fashioned, but sometimes old ways are best',
'A heart is like bedrock, destroyable only by cheating',
'You may not rest now, there are Canvas assignments nearby',
'60k+ users!',
'Almost Turing complete',
'Have you had your coffee yet?',
'#BF5700',
]; ];
export default splashText; export default splashText;

View File

@@ -1,3 +1,4 @@
import splashText from '@assets/insideJokes';
import { background } from '@shared/messages'; import { background } from '@shared/messages';
import { UserScheduleStore } from '@shared/storage/UserScheduleStore'; import { UserScheduleStore } from '@shared/storage/UserScheduleStore';
import { enableCourseRefreshing, enableCourseStatusChips } from '@shared/util/experimental'; import { enableCourseRefreshing, enableCourseStatusChips } from '@shared/util/experimental';
@@ -9,7 +10,7 @@ import useSchedules, { getActiveSchedule, replaceSchedule, switchSchedule } from
import { getUpdatedAtDateTimeString } from '@views/lib/getUpdatedAtDateTimeString'; import { getUpdatedAtDateTimeString } from '@views/lib/getUpdatedAtDateTimeString';
import { openTabFromContentScript } from '@views/lib/openNewTabFromContentScript'; import { openTabFromContentScript } from '@views/lib/openNewTabFromContentScript';
import clsx from 'clsx'; import clsx from 'clsx';
import React, { useState } from 'react'; import React, { useEffect, useState } from 'react';
import CalendarIcon from '~icons/material-symbols/calendar-month'; import CalendarIcon from '~icons/material-symbols/calendar-month';
import RefreshIcon from '~icons/material-symbols/refresh'; import RefreshIcon from '~icons/material-symbols/refresh';
@@ -28,6 +29,14 @@ import ScheduleListItem from './common/ScheduleListItem';
export default function PopupMain(): JSX.Element { export default function PopupMain(): JSX.Element {
const [activeSchedule, schedules] = useSchedules(); const [activeSchedule, schedules] = useSchedules();
const [isRefreshing, setIsRefreshing] = useState(false); const [isRefreshing, setIsRefreshing] = useState(false);
const [funny, setFunny] = useState<string>('');
useEffect(() => {
const randomIndex = Math.floor(Math.random() * splashText.length);
setFunny(
splashText[randomIndex] ?? 'If you are seeing this, something has gone horribly wrong behind the scenes.'
);
}, []);
const handleOpenOptions = async () => { const handleOpenOptions = async () => {
const url = chrome.runtime.getURL('/options.html'); const url = chrome.runtime.getURL('/options.html');
@@ -83,6 +92,16 @@ export default function PopupMain(): JSX.Element {
</List> </List>
</ScheduleDropdown> </ScheduleDropdown>
</div> </div>
{activeSchedule?.courses?.length === 0 && (
<div className='flex flex-col items-center self-center gap-1 px-2 py-2'>
<Text variant='small' className='text-center text-ut-gray !font-normal'>
{funny}
</Text>
<Text variant='small' className='text-center text-black'>
(No courses added)
</Text>
</div>
)}
<div className='flex-1 self-stretch overflow-y-auto px-5'> <div className='flex-1 self-stretch overflow-y-auto px-5'>
{activeSchedule?.courses?.length > 0 && ( {activeSchedule?.courses?.length > 0 && (
<List <List
@@ -105,7 +124,6 @@ export default function PopupMain(): JSX.Element {
</List> </List>
)} )}
</div> </div>
<div className='w-full flex flex-col items-center gap-1.25 p-5 pt-3.75'> <div className='w-full flex flex-col items-center gap-1.25 p-5 pt-3.75'>
<div className='flex gap-2.5'> <div className='flex gap-2.5'>
{enableCourseStatusChips && ( {enableCourseStatusChips && (