diff --git a/src/views/friend-list/FriendListMessageHandler.tsx b/src/views/friend-list/FriendListMessageHandler.tsx index d227be3c..96954387 100644 --- a/src/views/friend-list/FriendListMessageHandler.tsx +++ b/src/views/friend-list/FriendListMessageHandler.tsx @@ -1,18 +1,27 @@ +import { GetFriendRequestsComposer, MessengerInitEvent } from 'nitro-renderer'; +import { useCallback } from 'react'; +import { CreateMessageHook, SendMessageHook } from '../../hooks/messages/message-event'; import { FriendListMessageHandlerProps } from './FriendListMessageHandler.types'; +import { MessengerSettings } from './utils/MessengerSettings'; export function FriendListMessageHandler(props: FriendListMessageHandlerProps): JSX.Element { - const { } = props; + const { setMessengerSettings = null } = props; - /*const onUserInfoEvent = useCallback((event: UserInfoEvent) => - { - //const parser = event.getParser(); + const onMessengerInitEvent = useCallback((event: MessengerInitEvent) => + { + const parser = event.getParser(); - SendMessageHook(new NavigatorCategoriesComposer()); - SendMessageHook(new NavigatorSettingsComposer()); - }, []);*/ + setMessengerSettings(new MessengerSettings( + parser.userFriendLimit, + parser.normalFriendLimit, + parser.extendedFriendLimit, + parser.categories)); - //CreateMessageHook(UserInfoEvent, onUserInfoEvent); + SendMessageHook(new GetFriendRequestsComposer()); + }, [ setMessengerSettings ]); + + CreateMessageHook(MessengerInitEvent, onMessengerInitEvent); return null; } diff --git a/src/views/friend-list/FriendListMessageHandler.types.ts b/src/views/friend-list/FriendListMessageHandler.types.ts index 9271dcf8..ed91d7b9 100644 --- a/src/views/friend-list/FriendListMessageHandler.types.ts +++ b/src/views/friend-list/FriendListMessageHandler.types.ts @@ -1,2 +1,6 @@ +import { MessengerSettings } from './utils/MessengerSettings'; + export interface FriendListMessageHandlerProps -{} +{ + setMessengerSettings: (messengerSettings: MessengerSettings) => void; +} diff --git a/src/views/friend-list/FriendListView.tsx b/src/views/friend-list/FriendListView.tsx index 3eebad78..4187416c 100644 --- a/src/views/friend-list/FriendListView.tsx +++ b/src/views/friend-list/FriendListView.tsx @@ -1,26 +1,24 @@ +import { MessengerInitComposer } from 'nitro-renderer'; import React, { FC, useCallback, useEffect, useState } from 'react'; import { FriendListEvent } from '../../events'; import { DraggableWindow } from '../../hooks/draggable-window/DraggableWindow'; import { useUiEvent } from '../../hooks/events/ui/ui-event'; +import { SendMessageHook } from '../../hooks/messages/message-event'; import { LocalizeText } from '../../utils/LocalizeText'; import { FriendListMessageHandler } from './FriendListMessageHandler'; import { FriendListTabs, FriendListViewProps, IFriendListContext } from './FriendListView.types'; import { FriendListTabsContentView } from './tabs-content/FriendListTabsContentView'; import { FriendListTabsSelectorView } from './tabs-selector/FriendListTabsSelectorView'; +import { MessengerSettings } from './utils/MessengerSettings'; export const FriendListContext = React.createContext(null); export const FriendListView: FC = props => { - const [ isVisible, setIsVisible ] = useState(false); - const [ currentTab, setCurrentTab ] = useState(null); - const [ tabs, setTabs ] = useState([ - FriendListTabs.FRIENDS, FriendListTabs.REQUESTS, FriendListTabs.SEARCH - ]); - - useEffect(() => { - setCurrentTab(tabs[0]); - }, [ tabs ]); + const [ isVisible, setIsVisible ] = useState(false); + const [ currentTab, setCurrentTab ] = useState(null); + const [ tabs, setTabs ] = useState([ FriendListTabs.FRIENDS, FriendListTabs.REQUESTS, FriendListTabs.SEARCH ]); + const [ messengerSettings, setMessengerSettings ] = useState(null); const onFriendListEvent = useCallback((event: FriendListEvent) => { @@ -38,6 +36,23 @@ export const FriendListView: FC = props => useUiEvent(FriendListEvent.SHOW_FRIEND_LIST, onFriendListEvent); useUiEvent(FriendListEvent.TOGGLE_FRIEND_LIST, onFriendListEvent); + useEffect(() => + { + setCurrentTab(tabs[0]); + }, [ tabs ]); + + useEffect(() => + { + if(!messengerSettings) return; + + console.log(messengerSettings); + }, [ messengerSettings ]); + + useEffect(() => + { + SendMessageHook(new MessengerInitComposer()); + }, []); + function hideFriendList(): void { setIsVisible(false); @@ -45,7 +60,7 @@ export const FriendListView: FC = props => return ( - + { isVisible &&
diff --git a/src/views/friend-list/utils/MessengerSettings.ts b/src/views/friend-list/utils/MessengerSettings.ts new file mode 100644 index 00000000..2d2ccad9 --- /dev/null +++ b/src/views/friend-list/utils/MessengerSettings.ts @@ -0,0 +1,10 @@ +import { FriendCategoryData } from 'nitro-renderer'; + +export class MessengerSettings +{ + constructor( + public userFriendLimit: number = 0, + public normalFriendLimit: number = 0, + public extendedFriendLimit: number = 0, + public categories: FriendCategoryData[] = []) {} +}