From 07168dc47ca59cc76dee0575fb1be198bb49fb28 Mon Sep 17 00:00:00 2001
From: Pavel Prichodko <14926950+prichodko@users.noreply.github.com>
Date: Mon, 23 Jan 2023 15:29:37 +0100
Subject: [PATCH] simplify and fix IconButton
---
packages/components/src/composer/composer.tsx | 8 +--
.../src/icon-button/icon-button.tsx | 53 +++++++------------
yarn.lock | 51 +-----------------
3 files changed, 25 insertions(+), 87 deletions(-)
diff --git a/packages/components/src/composer/composer.tsx b/packages/components/src/composer/composer.tsx
index 39af16d6..30cec3bd 100644
--- a/packages/components/src/composer/composer.tsx
+++ b/packages/components/src/composer/composer.tsx
@@ -39,11 +39,11 @@ const Composer = (props: BaseProps) => {
- } />
- } />
- } />
+ } transparent />
+ } transparent />
+ } transparent />
- } />
+ } transparent />
)
diff --git a/packages/components/src/icon-button/icon-button.tsx b/packages/components/src/icon-button/icon-button.tsx
index e4dc55f2..8ce4e249 100644
--- a/packages/components/src/icon-button/icon-button.tsx
+++ b/packages/components/src/icon-button/icon-button.tsx
@@ -12,14 +12,12 @@ const Base = styled(Stack, {
cursor: 'pointer',
userSelect: 'none',
borderRadius: 10,
- display: 'inline-flex',
- alignItems: 'center',
- justifyContent: 'center',
animation: 'fast',
width: 30,
height: 30,
borderWidth: 1,
+ padding: 4,
backgroundColor: '$neutral-10',
borderColor: '$neutral-10',
@@ -32,7 +30,14 @@ const Base = styled(Stack, {
},
variants: {
- noBackground: {
+ selected: {
+ true: {
+ backgroundColor: '$neutral-30',
+ borderColor: '$neutral-30',
+ },
+ },
+
+ transparent: {
true: {
backgroundColor: 'transparent',
borderColor: '$neutral-20',
@@ -48,30 +53,6 @@ const Base = styled(Stack, {
},
},
},
- selected: {
- true: {
- backgroundColor: '$neutral-30',
- borderColor: '$neutral-30',
- },
- },
- } as const,
-})
-
-const Icon = styled(Text, {
- color: '$neutral-50',
- width: 20,
- height: 20,
-
- hoverStyle: {
- color: '$neutral-100',
- },
-
- variants: {
- selected: {
- true: {
- color: '$neutral-100',
- },
- },
} as const,
})
@@ -79,17 +60,21 @@ interface Props {
icon: React.ReactElement
onPress?: () => void
selected?: boolean
- noBackground?: boolean
+ transparent?: boolean
+ // FIXME: enforce aria-label for accessibility
+ // 'aria-label'?: string
}
const IconButton = (props: Props) => {
- const { icon, noBackground, selected, onPress } = props
+ const { icon, transparent, selected, onPress } = props
return (
-
-
- {cloneElement(icon, { color: '$neutral-50' })}
-
+
+ {cloneElement(icon, {
+ color: selected ? '$neutral-100' : '$neutral-50',
+ size: 20,
+ pressEvents: 'none',
+ })}
)
}
diff --git a/yarn.lock b/yarn.lock
index 2a8a186e..69924ebc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -15680,16 +15680,7 @@ react-docgen@6.0.0-alpha.3:
resolve "^1.17.0"
strip-indent "^3.0.0"
-"react-dom@^16.8.0 || ^17.0.0", react-dom@^17.0.0:
- version "17.0.2"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
- integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
- dependencies:
- loose-envify "^1.1.0"
- object-assign "^4.1.1"
- scheduler "^0.20.2"
-
-react-dom@^18.1.0:
+react-dom@18.1.0, "react-dom@^16.8.0 || ^17.0.0", react-dom@^17.0.0, react-dom@^18.1.0, react-dom@^18.2.0:
version "18.1.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.1.0.tgz#7f6dd84b706408adde05e1df575b3a024d7e8a2f"
integrity sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==
@@ -15697,14 +15688,6 @@ react-dom@^18.1.0:
loose-envify "^1.1.0"
scheduler "^0.22.0"
-react-dom@^18.2.0:
- version "18.2.0"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
- integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
- dependencies:
- loose-envify "^1.1.0"
- scheduler "^0.23.0"
-
react-element-to-jsx-string@^15.0.0:
version "15.0.0"
resolved "https://registry.yarnpkg.com/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz#1cafd5b6ad41946ffc8755e254da3fc752a01ac6"
@@ -15959,28 +15942,13 @@ react-style-singleton@^2.2.1:
invariant "^2.2.4"
tslib "^2.0.0"
-react@18.1.0:
+react@18.1.0, "react@^16.8.0 || ^17.0.0", react@^17.0.0, react@^18.2.0:
version "18.1.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890"
integrity sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==
dependencies:
loose-envify "^1.1.0"
-"react@^16.8.0 || ^17.0.0", react@^17.0.0:
- version "17.0.2"
- resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
- integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
- dependencies:
- loose-envify "^1.1.0"
- object-assign "^4.1.1"
-
-react@^18.2.0:
- version "18.2.0"
- resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
- integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
- dependencies:
- loose-envify "^1.1.0"
-
read-pkg-up@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
@@ -16511,14 +16479,6 @@ sax@>=0.6.0, sax@^1.2.4:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-scheduler@^0.20.2:
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
- integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
- dependencies:
- loose-envify "^1.1.0"
- object-assign "^4.1.1"
-
scheduler@^0.22.0:
version "0.22.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.22.0.tgz#83a5d63594edf074add9a7198b1bae76c3db01b8"
@@ -16526,13 +16486,6 @@ scheduler@^0.22.0:
dependencies:
loose-envify "^1.1.0"
-scheduler@^0.23.0:
- version "0.23.0"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
- integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
- dependencies:
- loose-envify "^1.1.0"
-
schema-utils@^2.6.5:
version "2.7.1"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"