From 725e9641e28bfff96b0e9ddb3a18b557ef2ac59f Mon Sep 17 00:00:00 2001 From: mrjvs Date: Wed, 7 Feb 2024 18:16:42 +0100 Subject: [PATCH] Added button and beginning of setup screen --- src/Popup.css | 8 +++++ src/components/Button.css | 41 ++++++++++++++++++++++ src/components/Button.tsx | 27 ++++++++++++++ src/components/PermissionMissingScreen.tsx | 22 ------------ src/components/SetupScreen.css | 0 src/components/SetupScreen.tsx | 24 +++++++++++++ src/font.css | 4 ++- src/popup.tsx | 4 +-- 8 files changed, 105 insertions(+), 25 deletions(-) create mode 100644 src/components/Button.css create mode 100644 src/components/Button.tsx delete mode 100644 src/components/PermissionMissingScreen.tsx create mode 100644 src/components/SetupScreen.css create mode 100644 src/components/SetupScreen.tsx diff --git a/src/Popup.css b/src/Popup.css index 3ac139a..ecfa447 100644 --- a/src/Popup.css +++ b/src/Popup.css @@ -3,12 +3,15 @@ html { min-height: 300px; min-width: 300px; + height: 100%; } body { min-height: 300px; min-width: 300px; margin: 0; + height: 100%; + max-height: 100%; } .popup { @@ -18,3 +21,8 @@ body { justify-content: center; align-items: center; } + +#__plasmo { + height: 100%; + background-color: #0a0a10; +} diff --git a/src/components/Button.css b/src/components/Button.css new file mode 100644 index 0000000..e3fa721 --- /dev/null +++ b/src/components/Button.css @@ -0,0 +1,41 @@ +.button { + padding: 1rem; + border-radius: 10px; + border: 0; + font-size: 1rem; + text-align: center; + cursor: pointer; + transition: background-color 100ms ease-in-out, color 100ms ease-in-out, transform 100ms ease-in-out; +} + +.button.full { + width: 100%; +} + +.button, .button:focus, .button:active, .button:visited { + text-decoration: none; +} + +.button:active { + transform: scale(1.05); +} + +.button.button-secondary { + background-color: #222033; + color: white; +} + +.button.button-secondary:hover { + background-color: #2c2941; + color: white; +} + +.button.button-primary { + background-color: #4F328A; + color: white; +} + +.button.button-primary:hover { + background-color: #5E3F9D; + color: white; +} diff --git a/src/components/Button.tsx b/src/components/Button.tsx new file mode 100644 index 0000000..16cd148 --- /dev/null +++ b/src/components/Button.tsx @@ -0,0 +1,27 @@ +import type { ReactNode } from 'react'; + +import './Button.css'; + +export interface ButtonProps { + type?: 'primary' | 'secondary'; + href?: string; + children?: ReactNode; + onClick?: () => void; + full?: boolean; + className?: string; +} + +export function Button(props: ButtonProps) { + const classes = `button button-${props.type ?? 'primary'} ${props.className ?? ''} ${props.full ? 'full' : ''}`; + if (props.href) + return ( + + {props.children} + + ); + return ( + + ); +} diff --git a/src/components/PermissionMissingScreen.tsx b/src/components/PermissionMissingScreen.tsx deleted file mode 100644 index d37f83f..0000000 --- a/src/components/PermissionMissingScreen.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { useCallback } from 'react'; - -import { Icon } from '~components/Icon'; - -import '~tabs/PermissionGrant.css'; - -export function PermissionMissingScreen() { - const open = useCallback(() => { - const url = (chrome || browser).runtime.getURL(`/tabs/PermissionRequest.html`); - (chrome || browser).tabs.create({ url }); - }, []); - - return ( -
- -

The extension is missing permissions it needs to function

- -
- ); -} diff --git a/src/components/SetupScreen.css b/src/components/SetupScreen.css new file mode 100644 index 0000000..e69de29 diff --git a/src/components/SetupScreen.tsx b/src/components/SetupScreen.tsx new file mode 100644 index 0000000..3cc481a --- /dev/null +++ b/src/components/SetupScreen.tsx @@ -0,0 +1,24 @@ +import { useCallback } from 'react'; + +import { Button } from '~components/Button'; + +import './SetupScreen.css'; + +export function SetupScreen() { + const open = useCallback(() => { + const url = (chrome || browser).runtime.getURL(`/tabs/PermissionRequest.html`); + (chrome || browser).tabs.create({ url }); + }, []); + + return ( +
+

Le's get this set up!

+

+ To get started, we need to setup some things first. Click the button below to continue. +

+ +
+ ); +} diff --git a/src/font.css b/src/font.css index 291e360..5c22608 100644 --- a/src/font.css +++ b/src/font.css @@ -12,8 +12,9 @@ src: url(data-base64:~assets/inter/bold.ttf); } -body { +body, html { font-family: "Inter", Arial, Helvetica, sans-serif; + font-size: 13px; } * { @@ -23,4 +24,5 @@ body { button { font-family: inherit; + font-size: inherit; } diff --git a/src/popup.tsx b/src/popup.tsx index 7ff5673..067636c 100644 --- a/src/popup.tsx +++ b/src/popup.tsx @@ -1,7 +1,7 @@ import { BottomLabel, TopRightLabel } from '~components/BottomLabel'; import { DisabledScreen } from '~components/DisabledScreen'; import { Frame } from '~components/Frame'; -import { PermissionMissingScreen } from '~components/PermissionMissingScreen'; +import { SetupScreen } from '~components/SetupScreen'; import { ToggleButton } from '~components/ToggleButton'; import { useDomain } from '~hooks/useDomain'; import { useToggleWhitelistDomain } from '~hooks/useDomainWhitelist'; @@ -21,7 +21,7 @@ function IndexPopup() { return page === 'perm' ? (
- +