diff --git a/packages/messenger-demo/src/App.tsx b/packages/messenger-demo/src/App.tsx index 057ee923b..41afa4c1a 100644 --- a/packages/messenger-demo/src/App.tsx +++ b/packages/messenger-demo/src/App.tsx @@ -11,6 +11,7 @@ function App() { walletConnectProjectId: process.env.REACT_APP_WALLET_CONNECT_PROJECT_ID, showAlways: true, hideFunction: 'attachments,edit,delete', // OPTINAL PARAMETER : 'attachments,edit,delete' or undefined + showContacts: true, // true for all contacts / false for default contact }; return ( diff --git a/packages/messenger-demo/src/index.css b/packages/messenger-demo/src/index.css index a97b3b832..05ab1ac53 100644 --- a/packages/messenger-demo/src/index.css +++ b/packages/messenger-demo/src/index.css @@ -72,5 +72,4 @@ code { left: 20px; transform: translate(0, 0); z-index: 10; - box-shadow: 6px 6px 20px 0 rgba(05, 010, 020, 1); } diff --git a/packages/messenger-widget/src/components/Chat/Chat.tsx b/packages/messenger-widget/src/components/Chat/Chat.tsx index 640265f60..fd2583d31 100644 --- a/packages/messenger-widget/src/components/Chat/Chat.tsx +++ b/packages/messenger-widget/src/components/Chat/Chat.tsx @@ -112,11 +112,13 @@ export function Chat(props: HideFunctionProps) { return (
{/* Shimmer effect while messages are loading */} {showShimEffect && ( diff --git a/packages/messenger-widget/src/components/Contacts/Contacts.tsx b/packages/messenger-widget/src/components/Contacts/Contacts.tsx index ed2670a64..a4226bded 100644 --- a/packages/messenger-widget/src/components/Contacts/Contacts.tsx +++ b/packages/messenger-widget/src/components/Contacts/Contacts.tsx @@ -224,6 +224,24 @@ export function Contacts(props: DashboardProps) { } }, [contactSelected]); + useEffect(() => { + if ( + !props.dm3Props.config.showContacts && + props.dm3Props.config.defaultContact && + !state.accounts.selectedContact && + contacts + ) { + const defaultContactIndex = contacts.findIndex( + (contact) => + contact.contactDetails.account.ensName === + props.dm3Props.config.defaultContact, + ); + if (defaultContactIndex > -1) { + setContactSelected(defaultContactIndex); + } + } + }, [contacts]); + useEffect(() => { fetchMessageSizeLimit(state, dispatch); }, []); diff --git a/packages/messenger-widget/src/components/RightHeader/RightHeader.css b/packages/messenger-widget/src/components/RightHeader/RightHeader.css index e56ce2ae1..f95580631 100644 --- a/packages/messenger-widget/src/components/RightHeader/RightHeader.css +++ b/packages/messenger-widget/src/components/RightHeader/RightHeader.css @@ -7,7 +7,7 @@ } .profile-name-container { - padding: 0.8rem; + padding: 0.5rem; border-top-right-radius: 8px; } diff --git a/packages/messenger-widget/src/components/RightHeader/RightHeader.tsx b/packages/messenger-widget/src/components/RightHeader/RightHeader.tsx index 71eb55d01..26112c5ce 100644 --- a/packages/messenger-widget/src/components/RightHeader/RightHeader.tsx +++ b/packages/messenger-widget/src/components/RightHeader/RightHeader.tsx @@ -11,8 +11,10 @@ import { import { ConnectButton } from '@rainbow-me/rainbowkit'; import { globalConfig } from 'dm3-lib-shared'; import { hasUserProfile } from 'dm3-lib-profile'; +import { HideFunctionProps } from '../../interfaces/props'; +import menuIcon from '../../assets/images/menu.svg'; -export function RightHeader() { +export function RightHeader(props: HideFunctionProps) { // fetches context storage const { state, dispatch } = useContext(GlobalContext); @@ -32,21 +34,24 @@ export function RightHeader() { // method to set profile page and set contact const updateView = () => { - let profileActive: RightViewSelected = state.uiView.selectedRightView; - profileActive = - profileActive === RightViewSelected.Profile - ? RightViewSelected.Default - : RightViewSelected.Profile; + if (props.showContacts) { + let profileActive: RightViewSelected = + state.uiView.selectedRightView; + profileActive = + profileActive === RightViewSelected.Profile + ? RightViewSelected.Default + : RightViewSelected.Profile; - dispatch({ - type: UiViewStateType.SetSelectedRightView, - payload: profileActive, - }); + dispatch({ + type: UiViewStateType.SetSelectedRightView, + payload: profileActive, + }); - dispatch({ - type: AccountsType.SetSelectedContact, - payload: undefined, - }); + dispatch({ + type: AccountsType.SetSelectedContact, + payload: undefined, + }); + } }; const fetchDisplayName = async () => { @@ -102,28 +107,45 @@ export function RightHeader() { return (
-
- + {!props.showContacts && ( +
+ menu +
+ )} + +
+
+ +
+ updateView()} + className="profile-name font-weight-500 pointer-cursor text-secondary-color" + > + {displayName} + + menu updateView()} + />
- updateView()} - className="profile-name font-weight-500 pointer-cursor text-secondary-color" - > - {displayName} - - menu updateView()} - />
); } diff --git a/packages/messenger-widget/src/interfaces/props.ts b/packages/messenger-widget/src/interfaces/props.ts index 65c8ad9e2..44b1417a9 100644 --- a/packages/messenger-widget/src/interfaces/props.ts +++ b/packages/messenger-widget/src/interfaces/props.ts @@ -85,4 +85,6 @@ export interface DeleteDM3NameProps { export interface HideFunctionProps { hideFunction?: string; + showContacts?: boolean; + defaultContact?: string; } diff --git a/packages/messenger-widget/src/styles/common.css b/packages/messenger-widget/src/styles/common.css index 422345d31..80f92d436 100644 --- a/packages/messenger-widget/src/styles/common.css +++ b/packages/messenger-widget/src/styles/common.css @@ -132,6 +132,10 @@ input:focus { height: 0.1rem; } +.menu-icon-container { + padding: 0.9rem 0.7rem 0.7rem 2rem; +} + /* CSS to rotate the spinner svg image */ @-webkit-keyframes rotating { from { diff --git a/packages/messenger-widget/src/views/Dashboard/Dashboard.tsx b/packages/messenger-widget/src/views/Dashboard/Dashboard.tsx index e7a52aa78..2ad83ce21 100644 --- a/packages/messenger-widget/src/views/Dashboard/Dashboard.tsx +++ b/packages/messenger-widget/src/views/Dashboard/Dashboard.tsx @@ -15,6 +15,22 @@ import DeleteMessage from '../../components/DeleteMessage/DeleteMessage'; export default function Dashboard(props: DashboardProps) { const { state } = useContext(GlobalContext); + const getRightViewStyleClasses = () => { + if (props.dm3Props.config.showContacts) { + return 'p-0 h-100 col-lg-9 col-md-9 col-sm-12'; + } else { + return 'p-0 h-100 col-12'; + } + }; + + const getLeftViewStyleClasses = () => { + if (props.dm3Props.config.showContacts) { + return 'col-lg-3 col-md-3 col-sm-12 p-0 h-100'; + } else { + return 'col-lg-3 col-md-3 col-sm-12 p-0 h-100 display-none'; + } + }; + return (
@@ -26,20 +42,22 @@ export default function Dashboard(props: DashboardProps) { {state.uiView.selectedMessageView.actionType === MessageActionType.DELETE && }
-
+
+
diff --git a/packages/messenger-widget/src/views/LeftView/LeftView.css b/packages/messenger-widget/src/views/LeftView/LeftView.css deleted file mode 100644 index 54147e443..000000000 --- a/packages/messenger-widget/src/views/LeftView/LeftView.css +++ /dev/null @@ -1,3 +0,0 @@ -.menu-icon-container { - padding: 1.53rem 0.7rem 0.7rem 2rem; -} diff --git a/packages/messenger-widget/src/views/LeftView/LeftView.tsx b/packages/messenger-widget/src/views/LeftView/LeftView.tsx index 8b7d10287..5f82d17c7 100644 --- a/packages/messenger-widget/src/views/LeftView/LeftView.tsx +++ b/packages/messenger-widget/src/views/LeftView/LeftView.tsx @@ -1,4 +1,3 @@ -import './LeftView.css'; import { Contacts } from '../../components/Contacts/Contacts'; import menuIcon from '../../assets/images/menu.svg'; import ConfigureProfileBox from '../../components/ConfigureProfileBox/ConfigureProfileBox'; diff --git a/packages/messenger-widget/src/views/RightView/RightView.tsx b/packages/messenger-widget/src/views/RightView/RightView.tsx index a3b1d0021..6e529b36a 100644 --- a/packages/messenger-widget/src/views/RightView/RightView.tsx +++ b/packages/messenger-widget/src/views/RightView/RightView.tsx @@ -12,10 +12,11 @@ import { HideFunctionProps } from '../../interfaces/props'; export default function RightView(props: HideFunctionProps) { // fetches context storage const { state } = useContext(GlobalContext); + return ( <>
- + {state.uiView.selectedRightView === RightViewSelected.Default && (