* Temporarily uninstalling husky cause github desktop has issues with it * Cleaned up some code. Removed unnecessary state value on injected popup * Should've fixed popup alignment issue. Still need to integrate course schedule with calendar. Still debugging. * Updated CalendarGridStories * Fix: change to ExampleCourse from exampleCourse * setCourse and calendar header need work * Update as part of merge * Fix: fixed build errors * Fix: Added Todo * Chore: Cleaned up useFlattenedCourseSchedule hook * fix: List now keeps track of state when existing items are switched, while adding new items to the end * Added back husky * Update src/views/components/calendar/Calendar/Calendar.tsx Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: added type-safety, destructuring, etc. ready for re-review * refactor: got rid of ts-ignore in openNewTabFromContentScript * Update src/views/components/calendar/CalendarHeader/CalenderHeader.tsx Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: using path aliasing Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: using path aliasing Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: using satisfies instead of as Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: using satisfies instead of as Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * style: reformatted spacing * style: eslint import order * refactor: added new constructor for UserSchedule to avoid passing down null values to child props --------- Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
26 lines
879 B
TypeScript
26 lines
879 B
TypeScript
import { createMessenger } from 'chrome-extension-toolkit';
|
|
|
|
type MyMessages = {
|
|
openNewTab: (data: { url: string }) => void;
|
|
};
|
|
|
|
const messenger = createMessenger<MyMessages>('background');
|
|
|
|
/**
|
|
* Content scripts and background scripts are isolated environments.
|
|
* Content scripts are where our code interacting with the webpage lives,
|
|
* whereas the background script is where we can open a tab from.
|
|
* This function allows us to open a new tab from the content script by communicating
|
|
* with the background script.
|
|
*/
|
|
export async function openTabFromContentScript(url: string) {
|
|
messenger
|
|
.openNewTab({ url }) // Fix: Pass the url as a property of an object
|
|
.then(() => {
|
|
console.log('New tab opened with URL:', url);
|
|
})
|
|
.catch(error => {
|
|
console.error('Error opening new tab:', error);
|
|
});
|
|
}
|