From 747a1912568f32cea3760ca18e57297d5df5ee60 Mon Sep 17 00:00:00 2001 From: dank074 Date: Wed, 5 Jan 2022 15:12:29 -0600 Subject: [PATCH] add club gift layout --- src/views/catalog/CatalogMessageHandler.tsx | 17 ++++++++++++++++- src/views/catalog/reducers/CatalogReducer.tsx | 11 ++++++++++- .../views/page/layout/GetCatalogLayout.tsx | 6 +++++- .../CatalogLayoutColorGroupingView.tsx | 12 ++++++++++++ .../vip-gifts/CatalogLayoutVipGiftsView.tsx | 17 +++++++++++++++++ 5 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 src/views/catalog/views/page/layout/color-grouping/CatalogLayoutColorGroupingView.tsx create mode 100644 src/views/catalog/views/page/layout/vip-gifts/CatalogLayoutVipGiftsView.tsx diff --git a/src/views/catalog/CatalogMessageHandler.tsx b/src/views/catalog/CatalogMessageHandler.tsx index 89c1e6fc..8fef7ae0 100644 --- a/src/views/catalog/CatalogMessageHandler.tsx +++ b/src/views/catalog/CatalogMessageHandler.tsx @@ -1,4 +1,4 @@ -import { ApproveNameMessageEvent, CatalogPageMessageEvent, CatalogPagesListEvent, CatalogPublishedMessageEvent, GiftReceiverNotFoundEvent, GiftWrappingConfigurationEvent, HabboClubOffersMessageEvent, LimitedEditionSoldOutEvent, ProductOfferEvent, PurchaseErrorMessageEvent, PurchaseNotAllowedMessageEvent, PurchaseOKMessageEvent, SellablePetPalettesMessageEvent, UserSubscriptionEvent } from '@nitrots/nitro-renderer'; +import { ApproveNameMessageEvent, CatalogPageMessageEvent, CatalogPagesListEvent, CatalogPublishedMessageEvent, ClubGiftInfoEvent, GiftReceiverNotFoundEvent, GiftWrappingConfigurationEvent, HabboClubOffersMessageEvent, LimitedEditionSoldOutEvent, ProductOfferEvent, PurchaseErrorMessageEvent, PurchaseNotAllowedMessageEvent, PurchaseOKMessageEvent, SellablePetPalettesMessageEvent, UserSubscriptionEvent } from '@nitrots/nitro-renderer'; import { GuildMembershipsMessageEvent } from '@nitrots/nitro-renderer/src/nitro/communication/messages/incoming/user/GuildMembershipsMessageEvent'; import { FC, useCallback } from 'react'; import { CatalogNameResultEvent, CatalogPurchaseFailureEvent } from '../../events'; @@ -164,6 +164,20 @@ export const CatalogMessageHandler: FC = props => }); }, [ dispatchCatalogState ]); + const onClubGiftInfoEvent = useCallback((event: ClubGiftInfoEvent) => + { + const parser = event.getParser(); + + if(!parser) return; + + dispatchCatalogState({ + type: CatalogActions.SET_CLUB_GIFTS, + payload: { + clubGifts: parser + } + }); + }, [dispatchCatalogState]); + CreateMessageHook(CatalogPagesListEvent, onCatalogPagesListEvent); CreateMessageHook(CatalogPageMessageEvent, onCatalogPageMessageEvent); CreateMessageHook(PurchaseOKMessageEvent, onPurchaseOKMessageEvent); @@ -179,6 +193,7 @@ export const CatalogMessageHandler: FC = props => CreateMessageHook(UserSubscriptionEvent, onUserSubscriptionEvent); CreateMessageHook(CatalogPublishedMessageEvent, onCatalogPublishedMessageEvent); CreateMessageHook(GiftWrappingConfigurationEvent, onGiftWrappingConfigurationEvent); + CreateMessageHook(ClubGiftInfoEvent, onClubGiftInfoEvent); return null; } diff --git a/src/views/catalog/reducers/CatalogReducer.tsx b/src/views/catalog/reducers/CatalogReducer.tsx index 35b1daf3..c9b7b674 100644 --- a/src/views/catalog/reducers/CatalogReducer.tsx +++ b/src/views/catalog/reducers/CatalogReducer.tsx @@ -1,4 +1,4 @@ -import { CatalogPageMessageOfferData, CatalogPageMessageParser, ClubOfferData, GiftWrappingConfigurationParser, INodeData } from '@nitrots/nitro-renderer'; +import { CatalogPageMessageOfferData, CatalogPageMessageParser, ClubGiftInfoParser, ClubOfferData, GiftWrappingConfigurationParser, INodeData } from '@nitrots/nitro-renderer'; import { HabboGroupEntryData } from '@nitrots/nitro-renderer/src/nitro/communication/messages/parser/user/HabboGroupEntryData'; import { Reducer } from 'react'; import { CatalogPetPalette } from '../common/CatalogPetPalette'; @@ -17,6 +17,7 @@ export interface ICatalogState groups: HabboGroupEntryData[]; petPalettes: CatalogPetPalette[]; clubOffers: ClubOfferData[]; + clubGifts: ClubGiftInfoParser; subscriptionInfo: SubscriptionInfo; giftConfiguration: GiftWrappingConfiguration; } @@ -34,6 +35,7 @@ export interface ICatalogAction groups?: HabboGroupEntryData[]; petPalette?: CatalogPetPalette; clubOffers?: ClubOfferData[]; + clubGifts?: ClubGiftInfoParser; subscriptionInfo?: SubscriptionInfo; giftConfiguration?: GiftWrappingConfigurationParser; } @@ -52,6 +54,7 @@ export class CatalogActions public static SET_SEARCH_RESULT: string = 'CA_SET_SEARCH_RESULT'; public static SET_SUBSCRIPTION_INFO: string = 'CA_SET_SUBSCRIPTION_INFO'; public static SET_GIFT_CONFIGURATION: string = 'CA_SET_GIFT_CONFIGURATION'; + public static SET_CLUB_GIFTS: string = 'CA_SET_CLUB_GIFTS'; } export const initialCatalog: ICatalogState = { @@ -64,6 +67,7 @@ export const initialCatalog: ICatalogState = { groups: [], petPalettes: [], clubOffers: null, + clubGifts: null, subscriptionInfo: new SubscriptionInfo(), giftConfiguration: null } @@ -160,6 +164,11 @@ export const CatalogReducer: Reducer = (state, ac return { ...state, giftConfiguration }; } + case CatalogActions.SET_CLUB_GIFTS: { + const clubGifts = (action.payload.clubGifts || state.clubGifts || null); + + return { ...state, clubGifts }; + } default: return state; } diff --git a/src/views/catalog/views/page/layout/GetCatalogLayout.tsx b/src/views/catalog/views/page/layout/GetCatalogLayout.tsx index 8fe64187..4685260e 100644 --- a/src/views/catalog/views/page/layout/GetCatalogLayout.tsx +++ b/src/views/catalog/views/page/layout/GetCatalogLayout.tsx @@ -1,5 +1,6 @@ import { CatalogPageMessageParser, RoomPreviewer } from '@nitrots/nitro-renderer'; import { CatalogLayoutBadgeDisplayView } from './badge-display/CatalogLayoutBadgeDisplayView'; +import { CatalogLayoutColorGroupingView } from './color-grouping/CatalogLayoutColorGroupingView'; import { CatalogLayoutDefaultView } from './default/CatalogLayoutDefaultView'; import { CatalogLayoutFrontpage4View } from './frontpage4/CatalogLayoutFrontpage4View'; import { CatalogLayouGuildCustomFurniView } from './guild-custom-furni/CatalogLayoutGuildCustomFurniView'; @@ -13,6 +14,7 @@ import { CatalogLayoutSingleBundleView } from './single-bundle/CatalogLayoutSing import { CatalogLayoutSpacesView } from './spaces-new/CatalogLayoutSpacesView'; import { CatalogLayoutTrophiesView } from './trophies/CatalogLayoutTrophiesView'; import { CatalogLayoutVipBuyView } from './vip-buy/CatalogLayoutVipBuyView'; +import { CatalogLayoutVipGiftsView } from './vip-gifts/CatalogLayoutVipGiftsView'; export const GetCatalogLayout = (pageParser: CatalogPageMessageParser, roomPreviewer: RoomPreviewer) => { @@ -39,7 +41,7 @@ export const GetCatalogLayout = (pageParser: CatalogPageMessageParser, roomPrevi case 'search_results': return null; case 'club_gifts': - return null; + return ; case 'marketplace_own_items': return null; case 'marketplace': @@ -54,6 +56,8 @@ export const GetCatalogLayout = (pageParser: CatalogPageMessageParser, roomPrevi return ; case 'badge_display': return ; + case 'default_3x3_color_grouping': + return ; case 'bots': case 'default_3x3': default: diff --git a/src/views/catalog/views/page/layout/color-grouping/CatalogLayoutColorGroupingView.tsx b/src/views/catalog/views/page/layout/color-grouping/CatalogLayoutColorGroupingView.tsx new file mode 100644 index 00000000..258893fe --- /dev/null +++ b/src/views/catalog/views/page/layout/color-grouping/CatalogLayoutColorGroupingView.tsx @@ -0,0 +1,12 @@ +import { FC } from 'react'; +import { CatalogLayoutProps } from '../CatalogLayout.types'; + +export interface CatalogLayoutColorGroupViewProps extends CatalogLayoutProps +{ + +} + +export const CatalogLayoutColorGroupingView : FC = props => +{ + return null; +} diff --git a/src/views/catalog/views/page/layout/vip-gifts/CatalogLayoutVipGiftsView.tsx b/src/views/catalog/views/page/layout/vip-gifts/CatalogLayoutVipGiftsView.tsx new file mode 100644 index 00000000..9bc602e4 --- /dev/null +++ b/src/views/catalog/views/page/layout/vip-gifts/CatalogLayoutVipGiftsView.tsx @@ -0,0 +1,17 @@ +import { FC } from 'react'; +import { NitroCardGridView } from '../../../../../../layout'; +import { CatalogLayoutProps } from '../CatalogLayout.types'; + +export interface CatalogLayoutVipGiftsViewProps extends CatalogLayoutProps +{ + +} + +export const CatalogLayoutVipGiftsView: FC = props => +{ + return ( + + + + ) +}