diff --git a/packages/swr-devtools-panel/src/components/CacheKey.tsx b/packages/swr-devtools-panel/src/components/CacheKey.tsx index 099c5e0..4d5ad9d 100644 --- a/packages/swr-devtools-panel/src/components/CacheKey.tsx +++ b/packages/swr-devtools-panel/src/components/CacheKey.tsx @@ -16,18 +16,35 @@ export const CacheKey = ({ }) => { return ( - {devToolsCacheData.isInfinite && } - {devToolsCacheData.error && } - {devToolsCacheData.isLoading && } - {devToolsCacheData.isValidating && } - {devToolsCacheData.isInfinite - ? devToolsCacheData.infiniteKey - : devToolsCacheData.key} +
+ {devToolsCacheData.isInfinite + ? devToolsCacheData.infiniteKey + : devToolsCacheData.key} +
+ + {devToolsCacheData.isInfinite && } + {devToolsCacheData.error && } + {devToolsCacheData.isLoading && } + {devToolsCacheData.isValidating && } +
); }; -const CacheText = styled.span` - display: inline-block; - padding: 0.3rem; +const CacheText = styled.div` + display: inline-flex; + align-items: center; + justify-content: space-between; + margin-right: auto; + flex: 1; + padding-left: 8px; + min-height: 2em; +`; + +const Labels = styled.div` + display: flex; + gap: 4px; + align-items: center; + margin-left: 8px; + margin-right: 4px; `; diff --git a/packages/swr-devtools-panel/src/components/NetworkPanel.tsx b/packages/swr-devtools-panel/src/components/NetworkPanel.tsx index 7a382bc..c777182 100644 --- a/packages/swr-devtools-panel/src/components/NetworkPanel.tsx +++ b/packages/swr-devtools-panel/src/components/NetworkPanel.tsx @@ -290,6 +290,7 @@ export const NetworkPanel = ({ }; const PanelWrapper = styled.section` + box-sizing: border-box; display: flex; justify-content: space-around; padding: 0; diff --git a/packages/swr-devtools-panel/src/components/Panel.tsx b/packages/swr-devtools-panel/src/components/Panel.tsx index 98e5fa9..b0b5e82 100644 --- a/packages/swr-devtools-panel/src/components/Panel.tsx +++ b/packages/swr-devtools-panel/src/components/Panel.tsx @@ -58,14 +58,14 @@ export const Panel = ({ onSelectItem(devToolsCacheData)} > - ( - {devToolsCacheData.timestampString}) + + {devToolsCacheData.timestampString} ))} -
+ {selectedDevToolsCacheData && ( @@ -76,6 +76,7 @@ export const Panel = ({ }; const PanelWrapper = styled.section` + box-sizing: border-box; display: flex; justify-content: space-around; padding: 0; @@ -85,7 +86,7 @@ const PanelWrapper = styled.section` const PanelItem = styled.div` flex: 1; - overflow: scroll; + overflow: auto; `; const CacheItems = styled.ul` @@ -121,6 +122,11 @@ const CacheItemButton = styled.button` text-align: left; `; -const Hr = styled.hr` - border-color: var(--swr-devtools-border-color); +const VerticalDivider = styled.div` + background-color: var(--swr-devtools-border-color); + width: 1px; +`; + +const Timestamp = styled.span` + margin-right: 8px; `; diff --git a/packages/swr-devtools-panel/src/components/SWRDevToolPanel.tsx b/packages/swr-devtools-panel/src/components/SWRDevToolPanel.tsx index 3a4d415..38ea49b 100644 --- a/packages/swr-devtools-panel/src/components/SWRDevToolPanel.tsx +++ b/packages/swr-devtools-panel/src/components/SWRDevToolPanel.tsx @@ -54,7 +54,7 @@ const GlobalStyle = createGlobalStyle` @media (prefers-color-scheme: dark) { --swr-devtools-text-color: #FFF; --swr-devtools-bg-color: #292a2d; - --swr-devtools-hover-bg-color: #6d6a66; + --swr-devtools-hover-bg-color: #37383b; --swr-devtools-border-color: #555454; --swr-devtools-selected-bg-color: #524f4d; --swr-devtools-selected-border-color: #bbb; @@ -81,7 +81,15 @@ export const SWRDevToolPanel = ({ cache, events }: Props) => {
- SWR + + + + + SWR + { }; const DevToolWindow = styled.div` + box-sizing: border-box; width: 100%; height: 100%; display: flex; @@ -131,16 +140,23 @@ const Header = styled.header` color: var(--swr-devtools-text-color); `; +const HeaderLogoWrapper = styled.div` + display: flex; + align-items: center; + gap: 8px; + padding-left: 8px; + padding-right: 16px; +`; + const HeaderTitle = styled.h3` margin: 0; - padding: 0.2rem 1rem; - align-self: center; + user-select: none; `; const PanelWrapper = styled.div` position: relative; - height: calc(100% - 40px); width: 100%; + height: calc(100% - 36px); `; const NoteText = styled.p` diff --git a/packages/swr-devtools-panel/src/components/SearchInput.tsx b/packages/swr-devtools-panel/src/components/SearchInput.tsx index 2e6f284..ab97345 100644 --- a/packages/swr-devtools-panel/src/components/SearchInput.tsx +++ b/packages/swr-devtools-panel/src/components/SearchInput.tsx @@ -9,14 +9,14 @@ type Props = { export const SearchInput = (props: Props) => ( - props.onChange(e.currentTarget.value)} aria-label="Search" - placeholder="Input a search query" + placeholder="Search keys" /> + ); @@ -26,20 +26,26 @@ const SearchArea = styled.label` width: 100%; display: flex; align-items: center; - gap: 8px; height: 2rem; margin: 0; padding: 0; border-bottom: solid 1px var(--swr-devtools-border-color); + background-color: var(--swr-devtools-bg-color); + &:focus-within, + &:hover { + background-color: var(--swr-devtools-hover-bg-color); + } `; const Input = styled.input` width: 100%; height: 100%; - background-color: var(--swr-devtools-bg-color); border: solid 1px var(--swr-devtools-border-color); + background: none; border: 0; margin: 0; padding: 0; + padding-left: 8px; color: var(--swr-devtools-text-color); + outline: none; `; diff --git a/packages/swr-devtools-panel/src/components/StatusLabel.tsx b/packages/swr-devtools-panel/src/components/StatusLabel.tsx index 9294550..6c0611d 100644 --- a/packages/swr-devtools-panel/src/components/StatusLabel.tsx +++ b/packages/swr-devtools-panel/src/components/StatusLabel.tsx @@ -1,19 +1,53 @@ import React from "react"; +import styled from "styled-components"; export const ErrorLabel = ({ children }: { children?: string }) => ( - ❌ {children} + ); export const LoadingLabel = ({ children }: { children?: string }) => ( - ⏳ {children} + ); export const ValidationgLabel = ({ children }: { children?: string }) => ( - ⚠️ {children} + ); export const InfiniteLabel = ({ children }: { children?: string }) => ( - - ♾️ {children} - + ); + +const Label = styled.label` + display: inline-flex; + align-items: center; +`; + +const Icon = styled.span` + display: flex; + align-items: center; + justify-content: center; + font-size: 0.75em; + line-height: 0; +`; diff --git a/packages/swr-devtools-panel/src/components/Tab.tsx b/packages/swr-devtools-panel/src/components/Tab.tsx index 6c33bab..21fb02b 100644 --- a/packages/swr-devtools-panel/src/components/Tab.tsx +++ b/packages/swr-devtools-panel/src/components/Tab.tsx @@ -48,6 +48,7 @@ const TabButton = styled.button.attrs({ type: "button" })<{ ? "var(--swr-devtools-selected-bg-color)" : "var(--swr-devtools-hover-bg-color)"}; } + user-select: none; `; const TabGroup = styled.ul` diff --git a/packages/swr-devtools-panel/src/components/icons/SearchIcon.tsx b/packages/swr-devtools-panel/src/components/icons/SearchIcon.tsx index 7009ce3..17a9ddc 100644 --- a/packages/swr-devtools-panel/src/components/icons/SearchIcon.tsx +++ b/packages/swr-devtools-panel/src/components/icons/SearchIcon.tsx @@ -7,8 +7,8 @@ export const SearchIcon = () => ( xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="24" - height="24" + width="16" + height="16" viewBox="0 0 16 16" style={{ fill: "var(--swr-devtools-text-color)" }} > @@ -18,5 +18,9 @@ export const SearchIcon = () => ( ); const IconWrapper = styled.span` - display: inline-block; + display: flex; + align-items: center; + justify-content: center; + position: relative; + right: 8px; `;