-
-
You're logged in!
+ return () => clearInterval(interval);
+ }, [view]);
-
+ if (view === "settings")
+ return (
+
+
+
You're logged in!
-
-
-
- );
+
- if (view === "url")
- return (
-
-
-
- setUrl(e.target.value)} />
-
+
+
+
+ );
-
-
-
- );
+ if (view === "url")
+ return (
+
+
+
+ setUrl(e.target.value)} />
+
- return (
-
- {view === "quick-connect" ? (
-
-
+
+
+ Next
+
+
+ );
-
- {Array.from({ length: 6 }).map((_, i) => (
-
- {quickConnectCode[i]}
-
- ))}
-
-
- ) : (
- <>
-
-
- setUsername(e.target.value)} />
-
+ return (
+
+ {view === "quick-connect" ? (
+ <>
+
+
-
-
- setPassword(e.target.value)} />
-
+
+ {Array.from({ length: 6 }).map((_, i) => (
+
+ {quickConnectCode[i]}
+
+ ))}
+
+
-
- >
- )}
+
+ >
+ ) : (
+ <>
+
+
+ setUsername(e.target.value)} />
+
-
-
-
-
- );
+
+
+ setPassword(e.target.value)} />
+
+
+
+ Log in
+
+ >
+ )}
+
+
+
+
+
+ );
}
diff --git a/src/styles.module.css b/src/styles.module.css
index 51f5bc4..38f9cf6 100644
--- a/src/styles.module.css
+++ b/src/styles.module.css
@@ -1,99 +1,104 @@
.button {
- background-color: var(--spice-button);
- color: var(--spice-text);
- padding: 0.5rem 1rem;
- border: none;
- outline: none;
- cursor: pointer;
- width: fit-content;
+ background-color: var(--spice-button);
+ color: var(--spice-text);
+ padding: 0.5rem 1rem;
+ border: none;
+ outline: none;
+ cursor: pointer;
+ width: fit-content;
+ border-radius: 0.35rem;
+ display: flex;
+ align-items: center;
+ gap: 0.3rem;
+}
+
+.secondary {
+ background-color: var(--spice-main-elevated);
}
.hr {
- border: none;
- border-top: 1px solid var(--spice-button-disabled);
- width: 100%;
- margin: 0.5rem 0;
+ border: none;
+ border-top: 1px solid var(--spice-button-disabled);
+ width: 100%;
+ margin: 0.5rem 0;
}
.modal {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 0.5rem;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 0.5rem;
}
.loggedIn {
- font-size: 1.25rem;
- font-weight: 600;
+ font-size: 1.25rem;
+ font-weight: 600;
}
.inputContainer {
- display: flex;
- flex-direction: column;
- width: 100%;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
}
.inputContainer label {
- color: var(--spice-subtext);
- margin-bottom: 0.25rem;
+ color: var(--spice-subtext);
+ margin-bottom: 0.25rem;
}
.inputContainer input,
.quickConnectBox {
- background-color: var(--spice-main-elevated);
- color: var(--spice-text);
- border: 1px solid var(--spice-card);
- padding: 0.5rem 0.6rem;
- font-size: 0.95rem;
- transition: 200ms border-color;
+ background-color: var(--spice-main-elevated);
+ color: var(--spice-text);
+ border: 1px solid var(--spice-card);
+ padding: 0.5rem 0.6rem;
+ font-size: 0.95rem;
+ transition: 200ms border-color;
+ border-radius: 0.35rem;
}
.inputContainer input:focus {
- border-color: var(--spice-button);
+ border-color: var(--spice-button);
}
.inputContainer input::placeholder {
- color: var(--spice-subtext);
- opacity: 0.5;
+ color: var(--spice-subtext);
+ opacity: 0.5;
}
.separator {
- width: 100%;
- display: flex;
- align-items: center;
- gap: 0.5rem;
- color: var(--spice-subtext);
-}
-
-.quick_connect {
- background-color: var(--spice-main-elevated);
+ width: 100%;
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ color: var(--spice-subtext);
}
.quickConnectWrapper {
- position: relative;
- display: grid;
- grid-template-columns: repeat(6, 1fr);
- gap: 0.25rem;
- height: 2.5rem;
+ position: relative;
+ display: grid;
+ grid-template-columns: repeat(6, 1fr);
+ gap: 0.25rem;
+ height: 2.5rem;
}
.quickConnectInput {
- background-color: transparent !important;
- border-color: transparent !important;
- color: transparent !important;
- position: absolute;
- inset: 0;
- z-index: 5;
+ background-color: transparent !important;
+ border-color: transparent !important;
+ color: transparent !important;
+ position: absolute;
+ inset: 0;
+ z-index: 5;
}
.quickConnectBox {
- width: 100%;
- height: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- border-radius: 0.25rem;
- font-size: 1.25rem;
- font-weight: 500;
- padding: 0;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 0.25rem;
+ font-size: 1.25rem;
+ font-weight: 500;
+ padding: 0;
}
diff --git a/src/types/css-modules.d.ts b/src/types/css-modules.d.ts
index b88fbe7..f2d12bb 100644
--- a/src/types/css-modules.d.ts
+++ b/src/types/css-modules.d.ts
@@ -1,4 +1,4 @@
-declare module "*.module.css" {
- const classes: { [key: string]: string };
- export default classes;
-}
+declare module "*.module.css" {
+ const classes: { [key: string]: string };
+ export default classes;
+}
diff --git a/src/types/spicetify.d.ts b/src/types/spicetify.d.ts
index 0415f7f..f9db668 100644
--- a/src/types/spicetify.d.ts
+++ b/src/types/spicetify.d.ts
@@ -1,2339 +1,2339 @@
declare namespace Spicetify {
- type Icon =
- | "album"
- | "artist"
- | "block"
- | "brightness"
- | "car"
- | "chart-down"
- | "chart-up"
- | "check"
- | "check-alt-fill"
- | "chevron-left"
- | "chevron-right"
- | "chromecast-disconnected"
- | "clock"
- | "collaborative"
- | "computer"
- | "copy"
- | "download"
- | "downloaded"
- | "edit"
- | "enhance"
- | "exclamation-circle"
- | "external-link"
- | "facebook"
- | "follow"
- | "fullscreen"
- | "gamepad"
- | "grid-view"
- | "heart"
- | "heart-active"
- | "instagram"
- | "laptop"
- | "library"
- | "list-view"
- | "location"
- | "locked"
- | "locked-active"
- | "lyrics"
- | "menu"
- | "minimize"
- | "minus"
- | "more"
- | "new-spotify-connect"
- | "offline"
- | "pause"
- | "phone"
- | "play"
- | "playlist"
- | "playlist-folder"
- | "plus-alt"
- | "plus2px"
- | "podcasts"
- | "projector"
- | "queue"
- | "repeat"
- | "repeat-once"
- | "search"
- | "search-active"
- | "shuffle"
- | "skip-back"
- | "skip-back15"
- | "skip-forward"
- | "skip-forward15"
- | "soundbetter"
- | "speaker"
- | "spotify"
- | "subtitles"
- | "tablet"
- | "ticket"
- | "twitter"
- | "visualizer"
- | "voice"
- | "volume"
- | "volume-off"
- | "volume-one-wave"
- | "volume-two-wave"
- | "watch"
- | "x";
- type Variant =
- | "bass"
- | "forte"
- | "brio"
- | "altoBrio"
- | "alto"
- | "canon"
- | "celloCanon"
- | "cello"
- | "ballad"
- | "balladBold"
- | "viola"
- | "violaBold"
- | "mesto"
- | "mestoBold"
- | "metronome"
- | "finale"
- | "finaleBold"
- | "minuet"
- | "minuetBold";
- type SemanticColor =
- | "textBase"
- | "textSubdued"
- | "textBrightAccent"
- | "textNegative"
- | "textWarning"
- | "textPositive"
- | "textAnnouncement"
- | "essentialBase"
- | "essentialSubdued"
- | "essentialBrightAccent"
- | "essentialNegative"
- | "essentialWarning"
- | "essentialPositive"
- | "essentialAnnouncement"
- | "decorativeBase"
- | "decorativeSubdued"
- | "backgroundBase"
- | "backgroundHighlight"
- | "backgroundPress"
- | "backgroundElevatedBase"
- | "backgroundElevatedHighlight"
- | "backgroundElevatedPress"
- | "backgroundTintedBase"
- | "backgroundTintedHighlight"
- | "backgroundTintedPress"
- | "backgroundUnsafeForSmallTextBase"
- | "backgroundUnsafeForSmallTextHighlight"
- | "backgroundUnsafeForSmallTextPress";
- type ColorSet =
- | "base"
- | "brightAccent"
- | "negative"
- | "warning"
- | "positive"
- | "announcement"
- | "invertedDark"
- | "invertedLight"
- | "mutedAccent"
- | "overMedia";
- type ColorSetBackgroundColors = {
- base: string;
- highlight: string;
- press: string;
- };
- type ColorSetNamespaceColors = {
- announcement: string;
- base: string;
- brightAccent: string;
- negative: string;
- positive: string;
- subdued: string;
- warning: string;
- };
- type ColorSetBody = {
- background: ColorSetBackgroundColors & {
- elevated: ColorSetBackgroundColors;
- tinted: ColorSetBackgroundColors;
- unsafeForSmallText: ColorSetBackgroundColors;
- };
- decorative: {
- base: string;
- subdued: string;
- };
- essential: ColorSetNamespaceColors;
- text: ColorSetNamespaceColors;
- };
- type Metadata = Partial