From 073ace3271fa55911916760e173e09fc98ff417e Mon Sep 17 00:00:00 2001 From: brucedonovan Date: Fri, 4 Aug 2023 13:26:01 +0100 Subject: [PATCH 1/5] Connect Button styling --- .../experimental_/CustomConnectButton.tsx | 23 ++++++++++++------- .../layout/header/HeaderContainer.tsx | 7 +++--- .../layout/sidebar/NewChatButton.tsx | 2 +- .../experimental_/layout/sidebar/SideBar.tsx | 10 +++----- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/components/experimental_/CustomConnectButton.tsx b/src/components/experimental_/CustomConnectButton.tsx index 17ff8b70..8a26a421 100644 --- a/src/components/experimental_/CustomConnectButton.tsx +++ b/src/components/experimental_/CustomConnectButton.tsx @@ -29,9 +29,16 @@ const CustomConnectButton = () => { (!authenticationStatus || authenticationStatus === 'authenticated'); return (
{ {(() => { if (!connected) { return ( - ); } if (chain.unsupported) { return ( - ); } @@ -70,7 +77,7 @@ const CustomConnectButton = () => { {account.displayName}
- {cleanValue(balance_, 2)} + {cleanValue(balance_, 2)} ETH
diff --git a/src/components/experimental_/layout/header/HeaderContainer.tsx b/src/components/experimental_/layout/header/HeaderContainer.tsx index 1767f5bc..b90f2189 100644 --- a/src/components/experimental_/layout/header/HeaderContainer.tsx +++ b/src/components/experimental_/layout/header/HeaderContainer.tsx @@ -14,16 +14,17 @@ const HeaderContainer = ({ const { pathname } = useRouter(); return (
-
{children}
+
{children}
+
diff --git a/src/components/experimental_/layout/sidebar/NewChatButton.tsx b/src/components/experimental_/layout/sidebar/NewChatButton.tsx index 45c4bc1e..2b3144be 100644 --- a/src/components/experimental_/layout/sidebar/NewChatButton.tsx +++ b/src/components/experimental_/layout/sidebar/NewChatButton.tsx @@ -4,7 +4,7 @@ export const buttonStyle = 'flex text-sm cursor-pointer select-none items-center rounded-[8px] border-[1px] border-teal-800 p-[8px] px-4 text-center text-white/70 hover:text-white transition ease-in-out hover:bg-teal-800/20 active:bg-transparent'; const NewChatButton = () => ( - +
New Chat
diff --git a/src/components/experimental_/layout/sidebar/SideBar.tsx b/src/components/experimental_/layout/sidebar/SideBar.tsx index b4d692cd..29761530 100644 --- a/src/components/experimental_/layout/sidebar/SideBar.tsx +++ b/src/components/experimental_/layout/sidebar/SideBar.tsx @@ -2,9 +2,7 @@ import { useContext, useState } from 'react'; import SettingsContext, { Setting } from '@/contexts/SettingsContext'; import { DevToolsModal } from '../../../devTools/DevToolsModal'; import ChatList from '../../ChatList'; -import CustomConnectButton from '../../CustomConnectButton'; import AccountStatus from './AccountStatus'; -import MenuButton from './MenuButton'; import MoreItems from './MoreItems'; import NewChatButton from './NewChatButton'; @@ -21,23 +19,21 @@ const Sidebar = ({ } = useContext(SettingsContext); return ( -
+
changeSetting(Setting.DEVELOPER_TOOLS, false)} /> -
+
-
+
- {/* {process.env.NODE_ENV === 'development' && } */}
- {/*
App version: v{process.env.APP_VERSION}
*/}
From 83c2211011f8487c3dc48031892442ecaa482e98 Mon Sep 17 00:00:00 2001 From: brucedonovan Date: Fri, 4 Aug 2023 15:06:05 +0100 Subject: [PATCH 2/5] more unified button styling --- .../experimental_/CustomConnectButton.tsx | 31 ++++++++++++------- .../experimental_/MessageInput_.tsx | 20 +++++++++--- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/src/components/experimental_/CustomConnectButton.tsx b/src/components/experimental_/CustomConnectButton.tsx index 8a26a421..c0f16c93 100644 --- a/src/components/experimental_/CustomConnectButton.tsx +++ b/src/components/experimental_/CustomConnectButton.tsx @@ -4,6 +4,7 @@ import { formatEther } from 'ethers/lib/utils.js'; import useBalance from '@/hooks/useBalance'; import { cleanValue } from '@/utils'; import Avatar from '../Avatar'; +import { buttonStyle } from './layout/sidebar/NewChatButton'; const CustomConnectButton = () => { const { data: balance } = useBalance(); @@ -30,15 +31,10 @@ const CustomConnectButton = () => { return (
{ })} > {(() => { + if (!connected) { return ( - ); } if (chain.unsupported) { return ( - ); @@ -67,7 +66,17 @@ const CustomConnectButton = () => { return (
diff --git a/src/components/experimental_/MessageInput_.tsx b/src/components/experimental_/MessageInput_.tsx index 439443ec..e12cd16d 100644 --- a/src/components/experimental_/MessageInput_.tsx +++ b/src/components/experimental_/MessageInput_.tsx @@ -1,4 +1,4 @@ -import { FormEvent, ReactNode, useCallback, useEffect, useRef, useState } from 'react'; +import { FormEvent, ReactNode, use, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import React, { ButtonHTMLAttributes } from 'react'; import TextareaAutosize from 'react-textarea-autosize'; import { ReadyState } from 'react-use-websocket'; @@ -8,6 +8,8 @@ import { PaperClipIcon, } from '@heroicons/react/24/outline'; import { useChatContext } from '@/contexts/ChatContext'; +import { useAccount } from 'wagmi'; +import CustomConnectButton from './CustomConnectButton'; interface IconBtnProps extends ButtonHTMLAttributes { children: ReactNode; @@ -61,6 +63,8 @@ const useFocus = () => { const MessageInput = () => { const [messageInput, setMessageInput] = useState(''); + const {isConnected:walletConnected } = useAccount(); + const { sendMessage, interactor, setInteractor, connectionStatus } = useChatContext(); const [inputRef] = useFocus(); const submit = useCallback(() => { @@ -86,10 +90,15 @@ const MessageInput = () => { setInteractor(interactor === 'user' ? 'commenter' : 'user'); }; - const isConnected = connectionStatus === ReadyState.OPEN; + const botConnected = connectionStatus === ReadyState.OPEN; + + const isConnected = useMemo(() => { + return walletConnected && botConnected; + }, [botConnected, walletConnected]); return ( -
+ <> + {isConnected ?
-
+ setMessageInput(e.target.value)} placeholder={interactor === 'user' ? 'Enter your message...' : 'Enter your comment...'} @@ -128,6 +137,9 @@ const MessageInput = () => {
+ : } + + ); }; From cdec00604027ea7c25d351faffce99ba55762b64 Mon Sep 17 00:00:00 2001 From: brucedonovan Date: Fri, 4 Aug 2023 15:12:39 +0100 Subject: [PATCH 3/5] reformatting+build --- .../experimental_/CustomConnectButton.tsx | 15 +-- .../experimental_/MessageInput_.tsx | 91 +++++++++++-------- .../layout/header/HeaderContainer.tsx | 2 +- 3 files changed, 61 insertions(+), 47 deletions(-) diff --git a/src/components/experimental_/CustomConnectButton.tsx b/src/components/experimental_/CustomConnectButton.tsx index c0f16c93..f90d2673 100644 --- a/src/components/experimental_/CustomConnectButton.tsx +++ b/src/components/experimental_/CustomConnectButton.tsx @@ -45,13 +45,14 @@ const CustomConnectButton = () => { })} > {(() => { - if (!connected) { return ( -
); } @@ -71,11 +72,11 @@ const CustomConnectButton = () => { cursor-pointer items-center justify-between - p-1 - px-3 - bg-gray-600/20 rounded-lg border-gray-800 + bg-gray-600/20 + p-1 + px-3 " onClick={openAccountModal} > diff --git a/src/components/experimental_/MessageInput_.tsx b/src/components/experimental_/MessageInput_.tsx index e12cd16d..b7988ad2 100644 --- a/src/components/experimental_/MessageInput_.tsx +++ b/src/components/experimental_/MessageInput_.tsx @@ -1,4 +1,13 @@ -import { FormEvent, ReactNode, use, useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { + FormEvent, + ReactNode, + use, + useCallback, + useEffect, + useMemo, + useRef, + useState, +} from 'react'; import React, { ButtonHTMLAttributes } from 'react'; import TextareaAutosize from 'react-textarea-autosize'; import { ReadyState } from 'react-use-websocket'; @@ -7,8 +16,8 @@ import { PaperAirplaneIcon, PaperClipIcon, } from '@heroicons/react/24/outline'; -import { useChatContext } from '@/contexts/ChatContext'; import { useAccount } from 'wagmi'; +import { useChatContext } from '@/contexts/ChatContext'; import CustomConnectButton from './CustomConnectButton'; interface IconBtnProps extends ButtonHTMLAttributes { @@ -63,7 +72,7 @@ const useFocus = () => { const MessageInput = () => { const [messageInput, setMessageInput] = useState(''); - const {isConnected:walletConnected } = useAccount(); + const { isConnected: walletConnected } = useAccount(); const { sendMessage, interactor, setInteractor, connectionStatus } = useChatContext(); const [inputRef] = useFocus(); @@ -92,53 +101,57 @@ const MessageInput = () => { const botConnected = connectionStatus === ReadyState.OPEN; - const isConnected = useMemo(() => { + const isConnected = useMemo(() => { return walletConnected && botConnected; }, [botConnected, walletConnected]); return ( <> - {isConnected ?
-
-
- -
- -
- setMessageInput(e.target.value)} - placeholder={interactor === 'user' ? 'Enter your message...' : 'Enter your comment...'} - tabIndex={0} - value={messageInput} - ref={inputRef} - onKeyDown={isConnected && messageInput ? onKeyPress : undefined} - className={` + {isConnected ? ( +
+
+
+ +
+ + + setMessageInput(e.target.value)} + placeholder={ + interactor === 'user' ? 'Enter your message...' : 'Enter your comment...' + } + tabIndex={0} + value={messageInput} + ref={inputRef} + onKeyDown={isConnected && messageInput ? onKeyPress : undefined} + className={` grow resize-none bg-transparent tracking-wider text-white/30 placeholder:text-white/30 focus:text-white/70 focus:outline-none `} - maxRows={7} - /> - - - - -
-
- : } - + maxRows={7} + /> + + + + +
+
+ ) : ( + + )} ); }; diff --git a/src/components/experimental_/layout/header/HeaderContainer.tsx b/src/components/experimental_/layout/header/HeaderContainer.tsx index b90f2189..47cc418a 100644 --- a/src/components/experimental_/layout/header/HeaderContainer.tsx +++ b/src/components/experimental_/layout/header/HeaderContainer.tsx @@ -14,7 +14,7 @@ const HeaderContainer = ({ const { pathname } = useRouter(); return (
From fec99069a238eca9ab9808ff1b3ad2fe4357d200 Mon Sep 17 00:00:00 2001 From: marcomariscal Date: Fri, 4 Aug 2023 08:11:07 -0700 Subject: [PATCH 4/5] chore: remove unused import --- src/components/experimental_/MessageInput_.tsx | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/components/experimental_/MessageInput_.tsx b/src/components/experimental_/MessageInput_.tsx index b7988ad2..75fc3680 100644 --- a/src/components/experimental_/MessageInput_.tsx +++ b/src/components/experimental_/MessageInput_.tsx @@ -1,13 +1,4 @@ -import { - FormEvent, - ReactNode, - use, - useCallback, - useEffect, - useMemo, - useRef, - useState, -} from 'react'; +import { FormEvent, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import React, { ButtonHTMLAttributes } from 'react'; import TextareaAutosize from 'react-textarea-autosize'; import { ReadyState } from 'react-use-websocket'; From 17ad8163ff2bc6e794bdcc552f2ffc1c526691b9 Mon Sep 17 00:00:00 2001 From: brucedonovan Date: Fri, 4 Aug 2023 17:03:34 +0100 Subject: [PATCH 5/5] handle no backend --- src/components/experimental_/MessageInput_.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/experimental_/MessageInput_.tsx b/src/components/experimental_/MessageInput_.tsx index 75fc3680..ecbbc6af 100644 --- a/src/components/experimental_/MessageInput_.tsx +++ b/src/components/experimental_/MessageInput_.tsx @@ -141,7 +141,8 @@ const MessageInput = () => {
) : ( - + botConnected ? : +
Waiting for Cacti connection ...
)} );