* some work * some work on course popup update the stories and create the header component * use chip component in header * complete CourseHeaderAndActions Component added course buttons, using proper subcomponents now. * Change test course to 314 * Add rmp callback * some unocss updates * add course button onclick handlers * add todo for calendar button * Rename CoursePopup Old one to "Old", remove "2" from new one * description stuff done * Modify story to use proper course info * Add Grade Distribution Stuff * Minor tweaks change style in header * Add TODO replace current grade colors with a tailwind palette * Fix syllabi url Remove unused variable and unnecessary args to url * Bunch of renaming * Kinda complete the handlers * change grade distribution colors to match updated figma * change from reducer pattern to state variables, remove chartData from state * add additional story * disabled add when course is not open * use array fill * Some changes with the instructor names * trying to get the CES stuff to work * CES button is working * remove a todo * add actual color for dminus * fix description, start no distribution state * post merge fixes * small fixes * fix: import as type * fix: some better typescript stuff i think * fix: manifest.ts * fix: pr feedback * Apply suggestions from code review --------- Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
40 lines
1.7 KiB
TypeScript
40 lines
1.7 KiB
TypeScript
import openNewTab from '@background/util/openNewTab';
|
|
import type CESMessage from '@shared/messages/CESMessage';
|
|
import type { MessageHandler } from 'chrome-extension-toolkit';
|
|
|
|
const CESFall2023Url = 'https://utexas.bluera.com/utexas/rpvl.aspx?rid=d3db767b-049f-46c5-9a67-29c21c29c580®l=en-US';
|
|
|
|
const CESHandler: MessageHandler<CESMessage> = {
|
|
openCESPage({ data, sendResponse }) {
|
|
const { instructorFirstName, instructorLastName } = data;
|
|
openNewTab(CESFall2023Url).then(tab => {
|
|
const instructorFirstAndLastName = [instructorFirstName, instructorLastName];
|
|
chrome.scripting.executeScript({
|
|
target: { tabId: tab.id },
|
|
func: (...instructorFirstAndLastName: String[]) => {
|
|
const inputElement = document.getElementById(
|
|
'ctl00_ContentPlaceHolder1_ViewList_tbxValue'
|
|
) as HTMLInputElement | null;
|
|
const [instructorFirstName, instructorLastName] = instructorFirstAndLastName;
|
|
if (inputElement) {
|
|
inputElement.value = `${instructorFirstName} ${instructorLastName}`;
|
|
inputElement.focus();
|
|
const enterKeyEvent = new KeyboardEvent('keydown', {
|
|
key: 'Enter',
|
|
code: 'Enter',
|
|
keyCode: 13,
|
|
which: 13,
|
|
bubbles: true,
|
|
});
|
|
inputElement.dispatchEvent(enterKeyEvent);
|
|
}
|
|
},
|
|
args: instructorFirstAndLastName,
|
|
});
|
|
sendResponse(tab);
|
|
});
|
|
},
|
|
};
|
|
|
|
export default CESHandler;
|