colors
This commit is contained in:
31
src/App.tsx
31
src/App.tsx
@@ -15,6 +15,8 @@ import type { Episode } from "@/types/episode";
|
||||
import { DIRECTION, LayerGraph, TABS } from "./utils/navigation";
|
||||
import { useTheme } from "./context/ThemeContext";
|
||||
|
||||
const DEBUG = import.meta.env.DEBUG;
|
||||
|
||||
export interface PageProps {
|
||||
depth: Accessor<number>;
|
||||
}
|
||||
@@ -81,6 +83,35 @@ export function App() {
|
||||
</box>
|
||||
)}
|
||||
>
|
||||
{DEBUG && (
|
||||
<box flexDirection="row" width="100%" height={1}>
|
||||
<text fg={theme.primary}>█</text>
|
||||
<text fg={theme.secondary}>█</text>
|
||||
<text fg={theme.accent}>█</text>
|
||||
<text fg={theme.error}>█</text>
|
||||
<text fg={theme.warning}>█</text>
|
||||
<text fg={theme.success}>█</text>
|
||||
<text fg={theme.info}>█</text>
|
||||
<text fg={theme.text}>█</text>
|
||||
<text fg={theme.textMuted}>█</text>
|
||||
<text fg={theme.surface}>█</text>
|
||||
<text fg={theme.background}>█</text>
|
||||
<text fg={theme.border}>█</text>
|
||||
<text fg={theme.borderActive}>█</text>
|
||||
<text fg={theme.diffAdded}>█</text>
|
||||
<text fg={theme.diffRemoved}>█</text>
|
||||
<text fg={theme.diffContext}>█</text>
|
||||
<text fg={theme.markdownText}>█</text>
|
||||
<text fg={theme.markdownHeading}>█</text>
|
||||
<text fg={theme.markdownLink}>█</text>
|
||||
<text fg={theme.markdownCode}>█</text>
|
||||
<text fg={theme.syntaxKeyword}>█</text>
|
||||
<text fg={theme.syntaxString}>█</text>
|
||||
<text fg={theme.syntaxNumber}>█</text>
|
||||
<text fg={theme.syntaxFunction}>█</text>
|
||||
</box>
|
||||
)}
|
||||
<box flexDirection="row" width="100%" height={1} />
|
||||
<box
|
||||
flexDirection="row"
|
||||
width="100%"
|
||||
|
||||
@@ -57,7 +57,9 @@ export function FeedItem(props: FeedItemProps) {
|
||||
<text fg={props.isSelected ? theme.text : theme.accent}>
|
||||
{props.feed.customName || props.feed.podcast.title}
|
||||
</text>
|
||||
{props.showEpisodeCount && <text fg={theme.textMuted}>({episodeCount()})</text>}
|
||||
{props.showEpisodeCount && (
|
||||
<text fg={theme.textMuted}>({episodeCount()})</text>
|
||||
)}
|
||||
</box>
|
||||
);
|
||||
}
|
||||
@@ -69,7 +71,7 @@ export function FeedItem(props: FeedItemProps) {
|
||||
gap={0}
|
||||
border={props.isSelected}
|
||||
borderColor={props.isSelected ? theme.primary : undefined}
|
||||
backgroundColor={props.isSelected ? theme.backgroundElement : undefined}
|
||||
backgroundColor={props.isSelected ? theme.primary : undefined}
|
||||
padding={1}
|
||||
>
|
||||
{/* Title row */}
|
||||
@@ -80,9 +82,7 @@ export function FeedItem(props: FeedItemProps) {
|
||||
<text fg={visibilityColor()}>{visibilityIcon()}</text>
|
||||
<text fg={theme.warning}>{pinnedIndicator()}</text>
|
||||
<text fg={props.isSelected ? theme.text : theme.text}>
|
||||
<strong>
|
||||
{props.feed.customName || props.feed.podcast.title}
|
||||
</strong>
|
||||
<strong>{props.feed.customName || props.feed.podcast.title}</strong>
|
||||
</text>
|
||||
</box>
|
||||
|
||||
@@ -93,7 +93,9 @@ export function FeedItem(props: FeedItemProps) {
|
||||
</text>
|
||||
)}
|
||||
{props.showLastUpdated && (
|
||||
<text fg={theme.textMuted}>Updated: {formatDate(props.feed.lastUpdated)}</text>
|
||||
<text fg={theme.textMuted}>
|
||||
Updated: {formatDate(props.feed.lastUpdated)}
|
||||
</text>
|
||||
)}
|
||||
</box>
|
||||
|
||||
|
||||
@@ -5,13 +5,10 @@
|
||||
*/
|
||||
|
||||
import { createSignal, For, Show, createMemo, createEffect } from "solid-js";
|
||||
import { useKeyboard } from "@opentui/solid";
|
||||
import { useFeedStore } from "@/stores/feed";
|
||||
import { useDownloadStore } from "@/stores/download";
|
||||
import { DownloadStatus } from "@/types/episode";
|
||||
import { format } from "date-fns";
|
||||
import type { Episode } from "@/types/episode";
|
||||
import type { Feed } from "@/types/feed";
|
||||
import { PageProps } from "@/App";
|
||||
import { useTheme } from "@/context/ThemeContext";
|
||||
|
||||
@@ -157,19 +154,27 @@ export function MyShowsPage(props: PageProps) {
|
||||
gap={1}
|
||||
paddingLeft={1}
|
||||
paddingRight={1}
|
||||
backgroundColor={index() === showIndex() ? theme.primary : undefined}
|
||||
backgroundColor={
|
||||
index() === showIndex() ? theme.primary : undefined
|
||||
}
|
||||
onMouseDown={() => {
|
||||
setShowIndex(index());
|
||||
setEpisodeIndex(0);
|
||||
}}
|
||||
>
|
||||
<text fg={index() === showIndex() ? theme.primary : theme.muted}>
|
||||
<text
|
||||
fg={index() === showIndex() ? theme.surface : theme.text}
|
||||
>
|
||||
{index() === showIndex() ? ">" : " "}
|
||||
</text>
|
||||
<text fg={index() === showIndex() ? theme.text : undefined}>
|
||||
<text
|
||||
fg={index() === showIndex() ? theme.surface : theme.text}
|
||||
>
|
||||
{feed.customName || feed.podcast.title}
|
||||
</text>
|
||||
<text fg={theme.muted}>({feed.episodes.length})</text>
|
||||
<text fg={index() === showIndex() ? undefined : theme.text}>
|
||||
({feed.episodes.length})
|
||||
</text>
|
||||
</box>
|
||||
)}
|
||||
</For>
|
||||
@@ -210,11 +215,21 @@ export function MyShowsPage(props: PageProps) {
|
||||
onMouseDown={() => setEpisodeIndex(index())}
|
||||
>
|
||||
<box flexDirection="row" gap={1}>
|
||||
<text fg={index() === episodeIndex() ? theme.primary : theme.muted}>
|
||||
<text
|
||||
fg={
|
||||
index() === episodeIndex()
|
||||
? theme.surface
|
||||
: theme.text
|
||||
}
|
||||
>
|
||||
{index() === episodeIndex() ? ">" : " "}
|
||||
</text>
|
||||
<text
|
||||
fg={index() === episodeIndex() ? theme.text : undefined}
|
||||
fg={
|
||||
index() === episodeIndex()
|
||||
? theme.surface
|
||||
: theme.text
|
||||
}
|
||||
>
|
||||
{episode.episodeNumber
|
||||
? `#${episode.episodeNumber} `
|
||||
@@ -223,8 +238,14 @@ export function MyShowsPage(props: PageProps) {
|
||||
</text>
|
||||
</box>
|
||||
<box flexDirection="row" gap={2} paddingLeft={2}>
|
||||
<text fg={theme.muted}>{formatDate(episode.pubDate)}</text>
|
||||
<text fg={theme.muted}>{formatDuration(episode.duration)}</text>
|
||||
<text
|
||||
fg={index() === episodeIndex() ? undefined : theme.info}
|
||||
>
|
||||
{formatDate(episode.pubDate)}
|
||||
</text>
|
||||
<text fg={theme.muted}>
|
||||
{formatDuration(episode.duration)}
|
||||
</text>
|
||||
<Show when={downloadLabel(episode.id)}>
|
||||
<text fg={downloadColor(episode.id)}>
|
||||
{downloadLabel(episode.id)}
|
||||
|
||||
Reference in New Issue
Block a user