diff --git a/package-lock.json b/package-lock.json index 9fe6baf83..f7601ebbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "react-json-view": "^1.21.3", "react-redux": "^7.2.8", "react-router-dom": "^6.2.2", - "react-select": "^5.3.2", + "react-select": "^5.4.0", "react-tooltip": "^4.2.21", "styled-components": "^5.3.5", "systeminformation": "^5.12.6", @@ -28751,9 +28751,9 @@ } }, "node_modules/react-select": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.3.2.tgz", - "integrity": "sha512-W6Irh7U6Ha7p5uQQ2ZnemoCQ8mcfgOtHfw3wuMzG6FAu0P+CYicgofSLOq97BhjMx8jS+h+wwWdCBeVVZ9VqlQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.4.0.tgz", + "integrity": "sha512-CjE9RFLUvChd5SdlfG4vqxZd55AZJRrLrHzkQyTYeHlpOztqcgnyftYAolJ0SGsBev6zAs6qFrjm6KU3eo2hzg==", "dependencies": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", @@ -56776,9 +56776,9 @@ } }, "react-select": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.3.2.tgz", - "integrity": "sha512-W6Irh7U6Ha7p5uQQ2ZnemoCQ8mcfgOtHfw3wuMzG6FAu0P+CYicgofSLOq97BhjMx8jS+h+wwWdCBeVVZ9VqlQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.4.0.tgz", + "integrity": "sha512-CjE9RFLUvChd5SdlfG4vqxZd55AZJRrLrHzkQyTYeHlpOztqcgnyftYAolJ0SGsBev6zAs6qFrjm6KU3eo2hzg==", "requires": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", diff --git a/package.json b/package.json index 6eade2f44..fb40d7b0e 100644 --- a/package.json +++ b/package.json @@ -303,7 +303,7 @@ "react-json-view": "^1.21.3", "react-redux": "^7.2.8", "react-router-dom": "^6.2.2", - "react-select": "^5.3.2", + "react-select": "^5.4.0", "react-tooltip": "^4.2.21", "styled-components": "^5.3.5", "systeminformation": "^5.12.6", diff --git a/src/renderer/Generics/redesign/RedesignContainer.tsx b/src/renderer/Generics/redesign/RedesignContainer.tsx index 8b95fbbea..8eda344b3 100644 --- a/src/renderer/Generics/redesign/RedesignContainer.tsx +++ b/src/renderer/Generics/redesign/RedesignContainer.tsx @@ -16,7 +16,7 @@ const RedesignContainerStoryBook: React.FC = ({ children }) => {
{children}
diff --git a/src/renderer/Generics/redesign/SelectCard/selectCard.css.ts b/src/renderer/Generics/redesign/SelectCard/selectCard.css.ts index 9d3942ef1..ada0cc91d 100644 --- a/src/renderer/Generics/redesign/SelectCard/selectCard.css.ts +++ b/src/renderer/Generics/redesign/SelectCard/selectCard.css.ts @@ -4,22 +4,22 @@ import { vars } from '../theme.css'; export const container = style({ margin: 5, cursor: 'pointer', - width: 400, + minWidth: 200, display: 'flex', flexDirection: 'row', alignItems: 'center', padding: '10px 12px', gap: '12px', borderRadius: '5px', - boxShadow: "inset 0px 0px 0px 4px rgba(255, 255, 255, 0.08)", + boxShadow: vars.components.selectCardBoxShadow, background: vars.color.background96, - ":hover": { background: vars.color.background92 } + ':hover': { background: vars.color.background92 }, }); export const selectedContainer = style({ - border: "2px solid #7a64ee", + border: '2px solid #7a64ee', background: vars.components.selectCardBackground, - ":hover": { background: vars.components.selectCardBackground } + ':hover': { background: vars.components.selectCardBackground }, }); export const textContainer = style({ @@ -54,5 +54,5 @@ export const descriptionStyle = style({ }); export const tagStyle = style({ - marginLeft: 'auto' + marginLeft: 'auto', }); diff --git a/src/renderer/Generics/redesign/SpecialSelect/SpecialSelect.tsx b/src/renderer/Generics/redesign/SpecialSelect/SpecialSelect.tsx new file mode 100644 index 000000000..b7fe7b3e0 --- /dev/null +++ b/src/renderer/Generics/redesign/SpecialSelect/SpecialSelect.tsx @@ -0,0 +1,127 @@ +/* eslint-disable react/destructuring-assignment */ +// Options replaceable component docs: +// https://react-select.com/components#Option +import Select, { OptionProps, ValueContainerProps } from 'react-select'; +import { NodeIconId } from '../../../assets/images/nodeIcons'; +import SelectCard from '../SelectCard/SelectCard'; + +const Option = (props: OptionProps) => { + return ( +
+ +
+ ); +}; + +const SingleValue = ({ children, ...props }: ValueContainerProps) => { + const nething = props.getValue(); + + return ( +
+ + + {/* {`${nething[0]?.label} ${nething[0]?.value}`} */} +
+ ); +}; + +const ecOptions = [ + { + iconId: 'geth', + value: 'geth', + label: 'Geth', + title: 'Geth', + info: 'Execution Client', + onClick() { + console.log('hello'); + }, + }, + { + iconId: 'erigon', + value: 'erigon', + label: 'Erigon', + title: 'Erigon', + info: 'Execution Client', + }, + { + iconId: 'nethermind', + value: 'nethermind', + label: 'Nethermind', + title: 'Nethermind', + info: 'Execution Client', + }, + { + iconId: 'besu', + value: 'besu', + label: 'Besu', + title: 'Besu', + info: 'Execution Client', + minority: true, + onClick() { + console.log('hello'); + }, + }, +]; +const options = [ + { value: 'lodestar', label: 'lodestar', storage: 100, minory: true }, + { value: 'prysm', label: 'prysm', storage: 1000 }, + { value: 'teku', label: 'teku', minory: true, storage: 9009 }, + { value: 'lighthouse', label: 'lighthouse', storage: 1 }, + { value: 'nimbus', label: 'nimbus', storage: 69 }, +]; +export interface SpecialSelectProps { + onChange: (newValue: string) => void; +} + +/** + * Use for selecting Ethereum node client + */ +const SpecialSelect = ({ onChange, ...props }: SpecialSelectProps) => { + return ( + <> +