Browse Source

Fix mobile layout

pull/1/head
Sacha Weatherstone 5 years ago
parent
commit
0d7d2cb64f
  1. 6
      src/Main.tsx
  2. 11
      src/components/MessageBox.tsx
  3. 7
      src/components/Sidebar.tsx

6
src/Main.tsx

@ -29,7 +29,7 @@ const Main = (props: MainProps) => {
const [messages, setMessages] = React.useState< const [messages, setMessages] = React.useState<
{ message: Types.TextPacket; ack: boolean }[] { message: Types.TextPacket; ack: boolean }[]
>([]); >([]);
const [settingsModalOpen, setSettingsModalOpen] = useState<boolean>(false); const [sidebarOpen, setSidebarOpen] = useState<boolean>(false);
React.useEffect(() => { React.useEffect(() => {
const textPacketEvent = props.connection.onTextPacketEvent.subscribe( const textPacketEvent = props.connection.onTextPacketEvent.subscribe(
@ -86,7 +86,8 @@ const Main = (props: MainProps) => {
<MessageBox <MessageBox
connection={props.connection} connection={props.connection}
isReady={props.isReady} isReady={props.isReady}
setSettingsModalOpen={setSettingsModalOpen} sidebarOpen={sidebarOpen}
setSidebarOpen={setSidebarOpen}
translations={props.translations} translations={props.translations}
/> />
</div> </div>
@ -100,6 +101,7 @@ const Main = (props: MainProps) => {
setLanguage={props.setLanguage} setLanguage={props.setLanguage}
translations={props.translations} translations={props.translations}
myId={props.myNodeInfo.myNodeNum} myId={props.myNodeInfo.myNodeNum}
sidebarOpen={sidebarOpen}
darkmode={props.darkmode} darkmode={props.darkmode}
setDarkmode={props.setDarkmode} setDarkmode={props.setDarkmode}
/> />

11
src/components/MessageBox.tsx

@ -7,7 +7,8 @@ import type { languageTemplate } from '../App';
export interface MessageBoxProps { export interface MessageBoxProps {
translations: languageTemplate; translations: languageTemplate;
setSettingsModalOpen: React.Dispatch<React.SetStateAction<boolean>>; sidebarOpen: boolean;
setSidebarOpen: React.Dispatch<React.SetStateAction<boolean>>;
connection: IHTTPConnection; connection: IHTTPConnection;
isReady: boolean; isReady: boolean;
} }
@ -21,11 +22,11 @@ const MessageBox = (props: MessageBoxProps) => {
} }
}; };
return ( return (
<div className="flex text-lg font-medium border rounded-md space-x-2 md:space-x-0 w-full"> <div className="flex text-lg font-medium space-x-2 md:space-x-0 w-full">
<div <div
className="flex p-3 text-xl hover:text-gray-500 text-gray-400 rounded-md shadow-md focus:outline-none cursor-pointer md:hidden" className="flex p-3 text-xl hover:text-gray-500 text-gray-400 rounded-md border shadow-md focus:outline-none cursor-pointer md:hidden"
onClick={() => { onClick={() => {
props.setSettingsModalOpen(true); props.setSidebarOpen(!props.sidebarOpen);
}} }}
> >
<MenuIcon className="m-auto h-6 2-6" /> <MenuIcon className="m-auto h-6 2-6" />
@ -46,7 +47,7 @@ const MessageBox = (props: MessageBoxProps) => {
onChange={(e) => { onChange={(e) => {
setCurrentMessage(e.target.value); setCurrentMessage(e.target.value);
}} }}
className={`p-3 placeholder-gray-400 text-gray-700 relative rounded-md shadow-md focus:outline-none w-full pr-10 ${ className={`p-3 placeholder-gray-400 text-gray-700 relative rounded-md border shadow-md focus:outline-none w-full pr-10 ${
props.isReady ? 'cursor-text' : 'cursor-not-allowed' props.isReady ? 'cursor-text' : 'cursor-not-allowed'
}`} }`}
/> />

7
src/components/Sidebar.tsx

@ -22,13 +22,18 @@ interface SidebarProps {
setLanguage: React.Dispatch<React.SetStateAction<LanguageEnum>>; setLanguage: React.Dispatch<React.SetStateAction<LanguageEnum>>;
translations: languageTemplate; translations: languageTemplate;
myId: number; myId: number;
sidebarOpen: boolean;
darkmode: boolean; darkmode: boolean;
setDarkmode: React.Dispatch<React.SetStateAction<boolean>>; setDarkmode: React.Dispatch<React.SetStateAction<boolean>>;
} }
const Sidebar = (props: SidebarProps) => { const Sidebar = (props: SidebarProps) => {
return ( return (
<div className="flex flex-col rounded-md md:ml-0 shadow-md border w-full max-w-sm"> <div
className={`${
props.sidebarOpen ? 'flex' : 'hidden md:flex'
} flex-col rounded-md md:ml-0 shadow-md border w-full max-w-sm`}
>
<Nodes <Nodes
isReady={props.isReady} isReady={props.isReady}
nodes={props.nodes} nodes={props.nodes}

Loading…
Cancel
Save