From ff27bddf2702622ef86721aa814e04f5810947e1 Mon Sep 17 00:00:00 2001 From: MrKBear Date: Sun, 13 Mar 2022 12:45:02 +0800 Subject: [PATCH] Rename message fix layout color --- source/Component/AttrInput/AttrInput.scss | 1 + source/Component/ColorInput/ColorInput.scss | 1 + .../Component/ErrorMessage/ErrorMessage.scss | 3 -- .../Component/ErrorMessage/ErrorMessage.tsx | 17 -------- source/Component/LabelList/LabelList.tsx | 1 - source/Component/LabelPicker/LabelPicker.scss | 1 + source/Component/Message/Message.scss | 20 +++++++++ source/Component/Message/Message.tsx | 42 +++++++++++++++++++ source/Component/PickerList/PickerList.scss | 5 ++- .../Component/TogglesInput/TogglesInput.scss | 1 + source/Localization/EN-US.ts | 2 + source/Localization/ZH-CN.ts | 2 + source/Panel/LabelDetails/LabelDetails.tsx | 7 ++-- source/Panel/LabelList/LabelList.scss | 4 -- source/Panel/LabelList/LabelList.tsx | 7 +--- source/Panel/Panel.tsx | 4 +- source/Panel/RangeDetails/RangeDetails.tsx | 27 +++++++----- 17 files changed, 97 insertions(+), 48 deletions(-) delete mode 100644 source/Component/ErrorMessage/ErrorMessage.scss delete mode 100644 source/Component/ErrorMessage/ErrorMessage.tsx create mode 100644 source/Component/Message/Message.scss create mode 100644 source/Component/Message/Message.tsx diff --git a/source/Component/AttrInput/AttrInput.scss b/source/Component/AttrInput/AttrInput.scss index f578672..a680181 100644 --- a/source/Component/AttrInput/AttrInput.scss +++ b/source/Component/AttrInput/AttrInput.scss @@ -11,6 +11,7 @@ div.attr-input { div.input-intro { width: 50%; height: 100%; + min-height: $line-min-height; max-width: 220px; display: flex; align-items: center; diff --git a/source/Component/ColorInput/ColorInput.scss b/source/Component/ColorInput/ColorInput.scss index 4ee5a79..99193d3 100644 --- a/source/Component/ColorInput/ColorInput.scss +++ b/source/Component/ColorInput/ColorInput.scss @@ -12,6 +12,7 @@ div.color-input-root { width: 50%; height: 100%; max-width: 220px; + min-height: $line-min-height; display: flex; align-items: center; padding-right: 5px; diff --git a/source/Component/ErrorMessage/ErrorMessage.scss b/source/Component/ErrorMessage/ErrorMessage.scss deleted file mode 100644 index aa33898..0000000 --- a/source/Component/ErrorMessage/ErrorMessage.scss +++ /dev/null @@ -1,3 +0,0 @@ -div.panel-error-message { - padding-top: 5px; -} \ No newline at end of file diff --git a/source/Component/ErrorMessage/ErrorMessage.tsx b/source/Component/ErrorMessage/ErrorMessage.tsx deleted file mode 100644 index 375dc24..0000000 --- a/source/Component/ErrorMessage/ErrorMessage.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { AllI18nKeys, Localization } from "@Component/Localization/Localization"; -import { FunctionComponent } from "react"; -import "./ErrorMessage.scss"; - -interface IErrorMessageProps { - i18nKey: AllI18nKeys; - options?: Record; - className?: string; -} - -const ErrorMessage: FunctionComponent = (props) => { - return
!!c).join(" ")}> - -
-} - -export { ErrorMessage }; \ No newline at end of file diff --git a/source/Component/LabelList/LabelList.tsx b/source/Component/LabelList/LabelList.tsx index eae20cd..ef077c2 100644 --- a/source/Component/LabelList/LabelList.tsx +++ b/source/Component/LabelList/LabelList.tsx @@ -2,7 +2,6 @@ import { Component, RefObject } from "react"; import { Label } from "@Model/Label"; import { Icon } from "@fluentui/react"; import { useSetting, IMixinSettingProps, Themes } from "@Context/Setting"; -import { ErrorMessage } from "@Component/ErrorMessage/ErrorMessage"; import "./LabelList.scss"; interface ILabelListProps { diff --git a/source/Component/LabelPicker/LabelPicker.scss b/source/Component/LabelPicker/LabelPicker.scss index b3a74f3..a8a7220 100644 --- a/source/Component/LabelPicker/LabelPicker.scss +++ b/source/Component/LabelPicker/LabelPicker.scss @@ -12,6 +12,7 @@ div.label-picker-root { div.input-intro { width: 50%; height: 100%; + min-height: $line-min-height; max-width: 220px; display: flex; align-items: center; diff --git a/source/Component/Message/Message.scss b/source/Component/Message/Message.scss new file mode 100644 index 0000000..853a887 --- /dev/null +++ b/source/Component/Message/Message.scss @@ -0,0 +1,20 @@ +div.panel-error-message { + transition: none !important; + padding-top: 5px; + padding-bottom: 5px; + min-height: 26px; + display: flex; + align-items: center; + + span { + display: block; + } +} + +div.panel-error-message.title { + padding: 15px 0 5px 0; +} + +div.panel-error-message.title.first { + padding: 5px 0 5px 0; +} \ No newline at end of file diff --git a/source/Component/Message/Message.tsx b/source/Component/Message/Message.tsx new file mode 100644 index 0000000..185266a --- /dev/null +++ b/source/Component/Message/Message.tsx @@ -0,0 +1,42 @@ +import { AllI18nKeys, I18N } from "@Component/Localization/Localization"; +import { useSetting, IMixinSettingProps, Themes, Language } from "@Context/Setting"; +import { FunctionComponent } from "react"; +import "./Message.scss"; + +interface IMessageProps { + i18nKey: AllI18nKeys; + options?: Record; + className?: string; + isTitle?: boolean; + first?: boolean; +} + +const MessageView: FunctionComponent = (props) => { + + let theme = props.setting ? props.setting.themes : Themes.dark; + let language: Language = props.setting ? props.setting.language : "EN_US"; + let classList: string[] = [ + "panel-error-message", + theme === Themes.dark ? "dark" : "light", + ]; + + if (props.first) { + classList.push("first"); + } + + if (props.isTitle) { + classList.push("title"); + classList.push("font-lvl3"); + } + + if (props.className) { + classList.push(props.className); + } + + return
+ {I18N(language, props.i18nKey, props.options)} +
+} + +const Message = useSetting(MessageView); +export { Message }; \ No newline at end of file diff --git a/source/Component/PickerList/PickerList.scss b/source/Component/PickerList/PickerList.scss index f080962..9de93c4 100644 --- a/source/Component/PickerList/PickerList.scss +++ b/source/Component/PickerList/PickerList.scss @@ -1,5 +1,6 @@ div.picker-list-root { max-width: 200px; + height: 100%; padding: 0px; margin: 0px; overflow-y: auto; @@ -45,7 +46,7 @@ div.picker-list-root { span.picker-list-nodata { display: inline-block; - padding: 5px; + padding: 8px; } } @@ -62,7 +63,7 @@ div.picker-list-root::-webkit-scrollbar { div.picker-list-root::-webkit-scrollbar-thumb { /*滚动条里面小方块*/ border-radius: 8px; - background-color: rgba($color: #000000, $alpha: .1); + background-color: rgba($color: #000000, $alpha: .2); } div.picker-list-root::-webkit-scrollbar-track { diff --git a/source/Component/TogglesInput/TogglesInput.scss b/source/Component/TogglesInput/TogglesInput.scss index 88598f9..3a1c789 100644 --- a/source/Component/TogglesInput/TogglesInput.scss +++ b/source/Component/TogglesInput/TogglesInput.scss @@ -12,6 +12,7 @@ div.toggles-input { width: 50%; height: 100%; max-width: 220px; + min-height: $line-min-height; display: flex; align-items: center; padding-right: 5px; diff --git a/source/Localization/EN-US.ts b/source/Localization/EN-US.ts index 3554142..8607395 100644 --- a/source/Localization/EN-US.ts +++ b/source/Localization/EN-US.ts @@ -40,6 +40,8 @@ const EN_US = { "Panel.Info.Label.List.View": "Edit view label list", "Panel.Title.Label.Details.View": "Label attributes", "Panel.Info.Label.Details.View": "Edit view label attributes", + "Common.Attr.Title.Basic": "Basic properties", + "Common.Attr.Title.Spatial": "Spatial property", "Common.Attr.Key.Display.Name": "Display name", "Common.Attr.Key.Position.X": "Position X", "Common.Attr.Key.Position.Y": "Position Y", diff --git a/source/Localization/ZH-CN.ts b/source/Localization/ZH-CN.ts index 8e63ed4..704add6 100644 --- a/source/Localization/ZH-CN.ts +++ b/source/Localization/ZH-CN.ts @@ -40,6 +40,8 @@ const ZH_CN = { "Panel.Info.Label.List.View": "编辑查看标签列表", "Panel.Title.Label.Details.View": "标签属性", "Panel.Info.Label.Details.View": "编辑查看标签属性", + "Common.Attr.Title.Basic": "基础属性", + "Common.Attr.Title.Spatial": "空间属性", "Common.Attr.Key.Display.Name": "显示名称", "Common.Attr.Key.Position.X": "X 坐标", "Common.Attr.Key.Position.Y": "Y 坐标", diff --git a/source/Panel/LabelDetails/LabelDetails.tsx b/source/Panel/LabelDetails/LabelDetails.tsx index fbda488..28691db 100644 --- a/source/Panel/LabelDetails/LabelDetails.tsx +++ b/source/Panel/LabelDetails/LabelDetails.tsx @@ -1,8 +1,7 @@ import { Component, ReactNode } from "react"; import { AttrInput } from "@Component/AttrInput/AttrInput"; import { useStatusWithEvent, IMixinStatusProps } from "@Context/Status"; -import { AllI18nKeys } from "@Component/Localization/Localization"; -import { ErrorMessage } from "@Component/ErrorMessage/ErrorMessage"; +import { Message } from "@Component/Message/Message"; import { ColorInput } from "@Component/ColorInput/ColorInput"; import { Label } from "@Model/Label"; import { TogglesInput } from "@Component/TogglesInput/TogglesInput"; @@ -13,6 +12,8 @@ class LabelDetails extends Component { private renderFrom(label: Label) { return <> + + { if (this.props.status) { @@ -42,7 +43,7 @@ class LabelDetails extends Component { return this.renderFrom(this.props.status.focusLabel); } } - return ; + return ; } } diff --git a/source/Panel/LabelList/LabelList.scss b/source/Panel/LabelList/LabelList.scss index 7643f5c..b2233e1 100644 --- a/source/Panel/LabelList/LabelList.scss +++ b/source/Panel/LabelList/LabelList.scss @@ -5,8 +5,4 @@ div.label-list-panel-root { min-height: 100%; padding: 10px; box-sizing: border-box; -} - -div.label-list-pabel-err-msg { - padding-bottom: 5px; } \ No newline at end of file diff --git a/source/Panel/LabelList/LabelList.tsx b/source/Panel/LabelList/LabelList.tsx index fce98be..f1f9a80 100644 --- a/source/Panel/LabelList/LabelList.tsx +++ b/source/Panel/LabelList/LabelList.tsx @@ -3,7 +3,7 @@ import { Component } from "react"; import { useStatusWithEvent, IMixinStatusProps } from "@Context/Status"; import { useSetting, IMixinSettingProps } from "@Context/Setting"; import { Label } from "@Model/Label"; -import { ErrorMessage } from "@Component/ErrorMessage/ErrorMessage"; +import { Message } from "@Component/Message/Message"; import "./LabelList.scss"; interface ILabelListProps { @@ -31,10 +31,7 @@ class LabelList extends Component {labels.length <=0 ? - : null + : null } } else return - + } } diff --git a/source/Panel/RangeDetails/RangeDetails.tsx b/source/Panel/RangeDetails/RangeDetails.tsx index 5a74f57..ce6384e 100644 --- a/source/Panel/RangeDetails/RangeDetails.tsx +++ b/source/Panel/RangeDetails/RangeDetails.tsx @@ -2,7 +2,7 @@ import { Component, ReactNode } from "react"; import { AttrInput } from "@Component/AttrInput/AttrInput"; import { useStatusWithEvent, IMixinStatusProps, Status } from "@Context/Status"; import { AllI18nKeys, Localization } from "@Component/Localization/Localization"; -import { ErrorMessage } from "@Component/ErrorMessage/ErrorMessage"; +import { Message } from "@Component/Message/Message"; import { Range } from "@Model/Range"; import { ObjectID } from "@Model/Renderer"; import { ColorInput } from "@Component/ColorInput/ColorInput"; @@ -15,10 +15,10 @@ class RangeDetails extends Component { public readonly AttrI18nKey: AllI18nKeys[] = [ "Common.Attr.Key.Display.Name", + "Common.Attr.Key.Color", "Common.Attr.Key.Label", "Common.Attr.Key.Display", "Common.Attr.Key.Update", - "Common.Attr.Key.Color", "Common.Attr.Key.Position.X", "Common.Attr.Key.Position.Y", "Common.Attr.Key.Position.Z", @@ -57,10 +57,19 @@ class RangeDetails extends Component { let keyIndex = 0; return <> + + + {this.renderAttrInput(range.id, keyIndex ++, range.displayName, (val, status) => { status.changeRangeAttrib(range.id, "displayName", val); })} + { + if (this.props.status) { + this.props.status.changeRangeAttrib(range.id, "color", color); + } + }}/> + { @@ -87,11 +96,7 @@ class RangeDetails extends Component { } }}/> - { - if (this.props.status) { - this.props.status.changeRangeAttrib(range.id, "color", color); - } - }}/> + {this.renderAttrInput(range.id, keyIndex ++, range.position[0], (val, status) => { range.position[0] = (val as any) / 1; @@ -124,10 +129,10 @@ class RangeDetails extends Component { public render(): ReactNode { if (this.props.status) { if (this.props.status.focusObject.size <= 0) { - return ; + return ; } if (this.props.status.focusObject.size > 1) { - return ; + return ; } let id: ObjectID = ""; this.props.status.focusObject.forEach((cid => id = cid)); @@ -137,10 +142,10 @@ class RangeDetails extends Component { if (range instanceof Range) { return this.renderFrom(range); } else { - return ; + return ; } } - return ; + return ; } }