diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2021-04-04 16:44:47 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2021-04-04 17:34:57 +0900 |
commit | 2b1079525b86dad45df11e6ad29a89989a6416ab (patch) | |
tree | 6bc29a0bce0adc66b6b82d01ecb8eab3e835d8d1 /src/console | |
parent | 20faca581a3b832301c9dca3074b0f61ba163d62 (diff) |
Separate Message to InfoMessage and ErrorMessage
Diffstat (limited to 'src/console')
-rw-r--r-- | src/console/components/Console.tsx | 10 | ||||
-rw-r--r-- | src/console/components/ErrorMessage.tsx | 15 | ||||
-rw-r--r-- | src/console/components/InfoMessage.tsx | 15 | ||||
-rw-r--r-- | src/console/components/console/Message.tsx | 33 |
4 files changed, 38 insertions, 35 deletions
diff --git a/src/console/components/Console.tsx b/src/console/components/Console.tsx index fa91336..951b627 100644 --- a/src/console/components/Console.tsx +++ b/src/console/components/Console.tsx @@ -1,7 +1,8 @@ import React from "react"; import Input from "./console/Input"; import Completion from "./console/Completion"; -import Message from "./console/Message"; +import InfoMessage from "./InfoMessage"; +import ErrorMessage from "./ErrorMessage"; import * as consoleActions from "../../console/actions/console"; import CommandLineParser, { InputPhase, @@ -199,10 +200,15 @@ const Console: React.FC = () => { </ColorSchemeProvider> ); case "info": + return ( + <ColorSchemeProvider colorscheme={state.colorscheme}> + <InfoMessage>{state.messageText}</InfoMessage> + </ColorSchemeProvider> + ); case "error": return ( <ColorSchemeProvider colorscheme={state.colorscheme}> - <Message mode={state.mode}>{state.messageText}</Message> + <ErrorMessage>{state.messageText}</ErrorMessage> </ColorSchemeProvider> ); default: diff --git a/src/console/components/ErrorMessage.tsx b/src/console/components/ErrorMessage.tsx new file mode 100644 index 0000000..93b049b --- /dev/null +++ b/src/console/components/ErrorMessage.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import { styled } from "./ColorSchemeProvider"; + +const Wrapper = styled.p` + border-top: 1px solid gray; + background-color: ${({ theme }) => theme.consoleErrorBackground}; + color: ${({ theme }) => theme.consoleErrorForeground}; + font-weight: bold; +`; + +const ErrorMessage: React.FC = ({ children }) => { + return <Wrapper role="alert">{children}</Wrapper>; +}; + +export default ErrorMessage; diff --git a/src/console/components/InfoMessage.tsx b/src/console/components/InfoMessage.tsx new file mode 100644 index 0000000..02ad27d --- /dev/null +++ b/src/console/components/InfoMessage.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import { styled } from "./ColorSchemeProvider"; + +const Wrapper = styled.p` + border-top: 1px solid gray; + background-color: ${({ theme }) => theme.consoleInfoBackground}; + color: ${({ theme }) => theme.consoleInfoForeground}; + font-weight: normal; +`; + +const InfoMessage: React.FC = ({ children }) => { + return <Wrapper role="status">{children}</Wrapper>; +}; + +export default InfoMessage; diff --git a/src/console/components/console/Message.tsx b/src/console/components/console/Message.tsx deleted file mode 100644 index 8dcdb5a..0000000 --- a/src/console/components/console/Message.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import React from "react"; -import { styled } from "../ColorSchemeProvider"; - -const Error = styled.p` - border-top: 1px solid gray; - background-color: ${({ theme }) => theme.consoleErrorBackground}; - color: ${({ theme }) => theme.consoleErrorForeground}; - font-weight: bold; -`; - -const Info = styled.p` - border-top: 1px solid gray; - background-color: ${({ theme }) => theme.consoleInfoBackground}; - color: ${({ theme }) => theme.consoleInfoForeground}; - font-weight: normal; -`; - -interface Props { - mode: string; - children: string; -} - -const Message: React.FC<Props> = ({ mode, children }) => { - switch (mode) { - case "error": - return <Error role="alert">{children}</Error>; - case "info": - return <Info role="status">{children}</Info>; - } - return null; -}; - -export default Message; |