diff --git a/src/views/catalog/views/page/layout/GetCatalogLayout.tsx b/src/views/catalog/views/page/layout/GetCatalogLayout.tsx index d5411cf0..3d4d6e06 100644 --- a/src/views/catalog/views/page/layout/GetCatalogLayout.tsx +++ b/src/views/catalog/views/page/layout/GetCatalogLayout.tsx @@ -1,6 +1,5 @@ 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'; @@ -58,8 +57,8 @@ export const GetCatalogLayout = (pageParser: CatalogPageMessageParser, roomPrevi return ; case 'badge_display': return ; - case 'default_3x3_color_grouping': - 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 index 258893fe..45307324 100644 --- a/src/views/catalog/views/page/layout/color-grouping/CatalogLayoutColorGroupingView.tsx +++ b/src/views/catalog/views/page/layout/color-grouping/CatalogLayoutColorGroupingView.tsx @@ -1,4 +1,9 @@ -import { FC } from 'react'; +import { CatalogPageMessageOfferData, IFurnitureData } from '@nitrots/nitro-renderer'; +import { FC, useMemo, useState } from 'react'; +import { GetSessionDataManager } from '../../../../../../api'; +import { NitroLayoutGrid, NitroLayoutGridColumn } from '../../../../../../layout'; +import { ProductTypeEnum } from '../../../../common/ProductTypeEnum'; +import { CatalogPageOffersView } from '../../offers/CatalogPageOffersView'; import { CatalogLayoutProps } from '../CatalogLayout.types'; export interface CatalogLayoutColorGroupViewProps extends CatalogLayoutProps @@ -8,5 +13,79 @@ export interface CatalogLayoutColorGroupViewProps extends CatalogLayoutProps export const CatalogLayoutColorGroupingView : FC = props => { - return null; + const { roomPreviewer = null, pageParser = null } = props; + const [ colorableItems, setColorableItems ] = useState>(new Map()); + + const offers = useMemo(() => + { + const offers: CatalogPageMessageOfferData[] = []; + const addedColorableItems = new Map(); + + pageParser.offers.forEach(offer => + { + const product = offer.products[0]; + if(!product) return; + + let furniData: IFurnitureData = null; + + if(product.productType === ProductTypeEnum.FLOOR) + { + furniData = GetSessionDataManager().getFloorItemData(product.furniClassId); + } + else if(product.productType === ProductTypeEnum.WALL) + { + furniData = GetSessionDataManager().getWallItemData(product.furniClassId); + } + + if(((!(furniData)) || ((furniData.fullName.indexOf('*') === -1)))) + { + offers.push(offer); + } + else + { + const name = furniData.fullName.split('*')[0]; + const colorIndex = parseInt(furniData.fullName.split('*')[1]); + + if(!colorableItems[name]) + { + colorableItems[name] = []; + } + + let selectedColor = 0; + if(furniData.colors) + { + for(let color of furniData.colors) + { + if(color !== 0xFFFFFF) + { + selectedColor = color; + } + } + if(colorableItems[name].indexOf(selectedColor) === -1) + { + colorableItems[name][colorIndex] = selectedColor; + } + } + + if(!addedColorableItems.has(name)) + { + offers.push(offer); + addedColorableItems.set(name, true); + } + } + }); + console.log(colorableItems); + return offers; + }, [colorableItems, pageParser.offers]); + + return ( + + + + + + + + + ); } diff --git a/src/views/help/HelpMessageHandler.tsx b/src/views/help/HelpMessageHandler.tsx index 047dd512..1febee73 100644 --- a/src/views/help/HelpMessageHandler.tsx +++ b/src/views/help/HelpMessageHandler.tsx @@ -39,7 +39,7 @@ export const HelpMessageHandler: FC<{}> = props => { const parser = event.getParser(); - const message = LocalizeText('help.cfh.closed.' + GetCloseReasonKey(parser.closeReason)) + const message = parser.messageText.length === 0 ? LocalizeText('help.cfh.closed.' + GetCloseReasonKey(parser.closeReason)) : parser.messageText; NotificationUtilities.simpleAlert(message, NotificationAlertType.MODERATION, null, null, LocalizeText('mod.alert.title')); }, []); diff --git a/src/views/help/views/HelpIndexView.tsx b/src/views/help/views/HelpIndexView.tsx index 3f067047..27ce5a04 100644 --- a/src/views/help/views/HelpIndexView.tsx +++ b/src/views/help/views/HelpIndexView.tsx @@ -35,7 +35,7 @@ export const HelpIndexView: FC<{}> = props =>
- +
diff --git a/src/views/mod-tools/views/room/room-tools/ModToolsRoomView.tsx b/src/views/mod-tools/views/room/room-tools/ModToolsRoomView.tsx index d169c1fb..3f40c1c6 100644 --- a/src/views/mod-tools/views/room/room-tools/ModToolsRoomView.tsx +++ b/src/views/mod-tools/views/room/room-tools/ModToolsRoomView.tsx @@ -88,7 +88,6 @@ export const ModToolsRoomView: FC = props =>
Owner in room: { ownerInRoom ? 'Yes' : 'No' }
-
diff --git a/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.tsx b/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.tsx index 61a9784a..8030cc7f 100644 --- a/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.tsx +++ b/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.tsx @@ -49,8 +49,8 @@ export const IssueInfoView: FC = props =>
Source: {getSourceName(ticket.categoryId)}
Category: {LocalizeText('help.cfh.topic.' + ticket.reportedCategoryId)}
Description: {ticket.message}
-
Caller:
-
Reported User:
+
Caller:
+
Reported User:
diff --git a/src/views/mod-tools/views/user/user-room-visits/ModToolsUserRoomVisitsView.tsx b/src/views/mod-tools/views/user/user-room-visits/ModToolsUserRoomVisitsView.tsx index 4ec3667b..ac414847 100644 --- a/src/views/mod-tools/views/user/user-room-visits/ModToolsUserRoomVisitsView.tsx +++ b/src/views/mod-tools/views/user/user-room-visits/ModToolsUserRoomVisitsView.tsx @@ -33,10 +33,10 @@ export const ModToolsUserRoomVisitsView: FC = p const item = roomVisitData.rooms[props.index]; return ( -
+
{item.enterHour.toString().padStart(2, '0')}:{item.enterMinute.toString().padStart(2, '0')}
Room: {item.roomName}
- +
); } diff --git a/src/views/notification-center/NotificationCenterMessageHandler.tsx b/src/views/notification-center/NotificationCenterMessageHandler.tsx index 76c68e65..2579d57e 100644 --- a/src/views/notification-center/NotificationCenterMessageHandler.tsx +++ b/src/views/notification-center/NotificationCenterMessageHandler.tsx @@ -80,7 +80,7 @@ export const NotificationCenterMessageHandler: FC