refactoring, using different pattern for page injection and reusing same pattern for both popup and content scripts

This commit is contained in:
Sriram Hariharan
2023-03-03 21:13:43 -06:00
parent 4ed52a3c9f
commit beb61176c1
18 changed files with 120 additions and 95 deletions

View File

@@ -0,0 +1,16 @@
import React, { useEffect, useMemo } from 'react';
import { bMessenger } from 'src/shared/messages';
import { SiteSupport } from '../lib/getSiteSupport';
import { Button } from './common/Button/Button';
interface Props {
support: SiteSupport[];
}
export default function CourseCatalogMain(props: Props) {
const openGoogle = () => {
bMessenger.openNewTab({ url: 'https://google.com' });
};
return <Button onClick={openGoogle}>{props.support.join(',')}</Button>;
}

View File

@@ -0,0 +1,5 @@
import React from 'react';
export default function PopupMain() {
return <div>popup</div>;
}

View File

@@ -0,0 +1,19 @@
@import 'src/views/styles/base.module.scss';
.button {
background-color: #000;
color: #fff;
padding: 10px;
border-radius: 5px;
border: none;
cursor: pointer;
font-size: 16px;
font-weight: 600;
transition: all 0.3s ease;
font-family: 'Inter';
&:hover {
background-color: #fff;
color: #000;
}
}

View File

@@ -0,0 +1,14 @@
import React from 'react';
import styles from './Button.module.scss';
interface Props {
onClick?: () => void;
}
export function Button(props: React.PropsWithChildren<Props>): JSX.Element {
return (
<button className={styles.button} onClick={props.onClick}>
{props.children}
</button>
);
}