From a69264e2cd02df4579c4f2d0ad2100b7c02e039e Mon Sep 17 00:00:00 2001 From: alexfront Date: Thu, 6 Aug 2020 13:05:02 +0300 Subject: [PATCH] FilePicker restyling Signed-off-by: alexfront --- .../components/cluster-icon-setting.tsx | 64 ++++++++++--------- .../components/file-picker/file-picker.scss | 19 +++--- .../components/file-picker/file-picker.tsx | 6 +- 3 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/renderer/components/+cluster-settings/components/cluster-icon-setting.tsx b/src/renderer/components/+cluster-settings/components/cluster-icon-setting.tsx index 2a5f0d0b97..20b4e6d6d5 100644 --- a/src/renderer/components/+cluster-settings/components/cluster-icon-setting.tsx +++ b/src/renderer/components/+cluster-settings/components/cluster-icon-setting.tsx @@ -1,16 +1,20 @@ import React from "react"; import { Cluster } from "../../../../main/cluster"; -import { clusterStore } from "../../../../common/cluster-store" -import { Icon } from "../../icon"; import { FilePicker, OverSizeLimitStyle } from "../../file-picker"; import { autobind } from "../../../utils"; import { Button } from "../../button"; -import { GeneralInputStatus } from "./statuses" import { observable } from "mobx"; import { observer } from "mobx-react"; +import { SubTitle } from "../../layout/sub-title"; +import { ClusterIcon } from "../../cluster-icon"; + +enum GeneralInputStatus { + CLEAN = "clean", + ERROR = "error", +} interface Props { - cluster: Cluster; + cluster: Cluster; } @observer @@ -21,7 +25,6 @@ export class ClusterIconSetting extends React.Component { @autobind() async onIconPick([file]: File[]) { const { cluster } = this.props; - try { if (file) { const buf = Buffer.from(await file.arrayBuffer()); @@ -38,35 +41,36 @@ export class ClusterIconSetting extends React.Component { } getClearButton() { - const { cluster } = this.props; - - if (cluster.preferences.icon) { - return + if (this.props.cluster.preferences.icon) { + return } } render() { - return <> -

Cluster Icon

-

Set cluster icon. By default it is automatically generated. {this.getIconRight()}

-
- + - {this.getClearButton()} -
- ; - } - - getIconRight(): React.ReactNode { - switch (this.status) { - case GeneralInputStatus.CLEAN: - return null; - case GeneralInputStatus.ERROR: - return - } + {"Browse for new icon..."} + + ); + return ( + <> + +

Define cluster icon. By default automatically generated.

+
+ + {this.getClearButton()} +
+ + ); } } \ No newline at end of file diff --git a/src/renderer/components/file-picker/file-picker.scss b/src/renderer/components/file-picker/file-picker.scss index dbfada6c8e..63a9c2da74 100644 --- a/src/renderer/components/file-picker/file-picker.scss +++ b/src/renderer/components/file-picker/file-picker.scss @@ -1,14 +1,11 @@ .FilePicker { - input[type="file"] { - display: none; - } + input[type="file"] { + display: none; + } - label { - display: inline-block; - border: medium solid; - padding: 10px; - border-radius: 5px; - cursor: pointer; - margin: 5px; - } + label { + display: inline-flex; + cursor: pointer; + color: var(--blue); + } } \ No newline at end of file diff --git a/src/renderer/components/file-picker/file-picker.tsx b/src/renderer/components/file-picker/file-picker.tsx index 0290b5e645..09d4dcc957 100644 --- a/src/renderer/components/file-picker/file-picker.tsx +++ b/src/renderer/components/file-picker/file-picker.tsx @@ -43,7 +43,7 @@ export enum OverTotalSizeLimitStyle { export interface BaseProps { accept?: string; - labelText: string; + label: React.ReactElement; multiple?: boolean; // limit is the optional maximum number of files to upload @@ -175,10 +175,10 @@ export class FilePicker extends React.Component { } render() { - const { accept, labelText, multiple } = this.props; + const { accept, label, multiple } = this.props; return
- +