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;
`;