diff --git a/.env b/.env
deleted file mode 100644
index 1f084131..00000000
--- a/.env
+++ /dev/null
@@ -1,7 +0,0 @@
-BROWSER=none
-GENERATE_SOURCEMAP=false
-REACT_APP_CONFIG_URLS=/renderer-config.json,/ui-config.json
-REACT_APP_SOCKET_URL=wss://ws.nitrots.co:2096
-REACT_APP_ASSET_URL=https://assets.nitrodev.co
-REACT_APP_IMAGE_LIBRARY_URL=https://swf.nitrots.co/c_images/
-REACT_APP_HOF_FURNI_URL=https://swf.nitrots.co/dcr/hof_furni
diff --git a/.gitignore b/.gitignore
index c346b941..aa65aeba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,5 +26,6 @@ Thumbs.db
# Nitro
/build
*.zip
-/public/renderer-config.json
-/public/ui-config.json
+.env
+public/renderer-config.json
+public/ui-config.json
diff --git a/package.json b/package.json
index 4c6e6f14..820aa9c3 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,7 @@
"scripts": {
"start": "craco start",
"build": "craco --max_old_space_size=8048 build",
- "build:prod": "npx browserslist@latest --update-db && yarn remove @nitrots/nitro-renderer && yarn add git+https://git@git.krews.org/nitro/nitro-renderer#dev && yarn install && yarn build",
+ "build:prod": "npx browserslist@latest --update-db && yarn install && yarn build",
"test": "craco test",
"eject": "react-scripts eject"
},
diff --git a/public/ui-config.json.example b/public/ui-config.json.example
index 230f865f..70135a75 100644
--- a/public/ui-config.json.example
+++ b/public/ui-config.json.example
@@ -1,11 +1,11 @@
{
"image.library.notifications.url": "${image.library.url}notifications/%image%.png",
"achievements.images.url": "${image.library.url}Quests/%image%.png",
- "camera.url": "CAMERA_PHOTOS_URL",
- "thumbnails.url": "CAMERA_ROOM_THUMBNAILS/%thumbnail%.png",
- "url.prefix": "URL",
+ "camera.url": "https://camera.com",
+ "thumbnails.url": "https://camera.com/thumbnail/%thumbnail%.png",
+ "url.prefix": "https://website.com",
"floorplan.tile.url": "${asset.url}/floorplan-editor/tiles.json",
- "habbopages.url": "URL/",
+ "habbopages.url": "https://website.com/habbopages/",
"chat.viewer.height.percentage": 0.40,
"widget.dimmer.colorwheel": false,
"hotelview": {
@@ -44,8 +44,7 @@
"system.currency.types": [
-1,
0,
- 5,
- 101
+ 5
],
"hc.center": {
"benefits.info": true,
diff --git a/src/App.tsx b/src/App.tsx
index 59094326..7ebb30d8 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -126,12 +126,11 @@ export const App: FC<{}> = props =>
return (
-
-
{ (!isReady || isError) &&
}
+
);
}
diff --git a/src/assets/styles/bootstrap/forms/_form-check.scss b/src/assets/styles/bootstrap/forms/_form-check.scss
index 6321b410..402c5954 100644
--- a/src/assets/styles/bootstrap/forms/_form-check.scss
+++ b/src/assets/styles/bootstrap/forms/_form-check.scss
@@ -17,7 +17,7 @@
.form-check-input {
width: $form-check-input-width;
height: $form-check-input-width;
- margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
+ //margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
vertical-align: top;
background-color: $form-check-input-bg;
background-repeat: no-repeat;
diff --git a/src/components/catalog/CatalogMessageHandler.tsx b/src/components/catalog/CatalogMessageHandler.tsx
index 960af30d..5a0b024c 100644
--- a/src/components/catalog/CatalogMessageHandler.tsx
+++ b/src/components/catalog/CatalogMessageHandler.tsx
@@ -1,4 +1,4 @@
-import { ApproveNameMessageEvent, CatalogPageMessageEvent, CatalogPagesListEvent, CatalogPublishedMessageEvent, GiftReceiverNotFoundEvent, GiftWrappingConfigurationEvent, HabboClubOffersMessageEvent, LimitedEditionSoldOutEvent, MarketplaceConfigurationEvent, MarketplaceMakeOfferResult, ProductOfferEvent, PurchaseErrorMessageEvent, PurchaseNotAllowedMessageEvent, PurchaseOKMessageEvent, SellablePetPalettesMessageEvent, UserSubscriptionEvent } from '@nitrots/nitro-renderer';
+import { ApproveNameMessageEvent, CatalogPageMessageEvent, CatalogPagesListEvent, CatalogPublishedMessageEvent, ClubGiftInfoEvent, GiftReceiverNotFoundEvent, GiftWrappingConfigurationEvent, HabboClubOffersMessageEvent, LimitedEditionSoldOutEvent, MarketplaceConfigurationEvent, MarketplaceMakeOfferResult, 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 { LocalizeText } from '../../api';
@@ -203,6 +203,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);
@@ -218,6 +232,7 @@ export const CatalogMessageHandler: FC<{}> = props =>
CreateMessageHook(UserSubscriptionEvent, onUserSubscriptionEvent);
CreateMessageHook(CatalogPublishedMessageEvent, onCatalogPublishedMessageEvent);
CreateMessageHook(GiftWrappingConfigurationEvent, onGiftWrappingConfigurationEvent);
+ CreateMessageHook(ClubGiftInfoEvent, onClubGiftInfoEvent);
CreateMessageHook(MarketplaceMakeOfferResult, onMarketplaceMakeOfferResult);
CreateMessageHook(MarketplaceConfigurationEvent, onMarketplaceConfigurationEvent);
diff --git a/src/components/catalog/CatalogView.tsx b/src/components/catalog/CatalogView.tsx
index abde5ff8..6cb4ceeb 100644
--- a/src/components/catalog/CatalogView.tsx
+++ b/src/components/catalog/CatalogView.tsx
@@ -1,4 +1,4 @@
-import { GetCatalogIndexComposer, GetCatalogPageComposer, GetGiftWrappingConfigurationComposer, GetMarketplaceConfigurationMessageComposer, ILinkEventTracker, INodeData, RoomPreviewer } from '@nitrots/nitro-renderer';
+import { GetCatalogIndexComposer, GetCatalogPageComposer, GetClubGiftInfo, GetGiftWrappingConfigurationComposer, GetMarketplaceConfigurationMessageComposer, ILinkEventTracker, INodeData, RoomPreviewer } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useReducer, useState } from 'react';
import { AddEventLinkTracker, GetRoomEngine, LocalizeText, RemoveLinkEventTracker } from '../../api';
import { CREDITS, PlaySound } from '../../api/utils/PlaySound';
@@ -195,6 +195,7 @@ export const CatalogView: FC<{}> = props =>
{
SendMessageHook(new GetMarketplaceConfigurationMessageComposer());
SendMessageHook(new GetGiftWrappingConfigurationComposer());
+ SendMessageHook(new GetClubGiftInfo());
});
const currentNavigationPage = ((searchResult && searchResult.page) || currentTab);
diff --git a/src/components/catalog/common/views/page/layout/color-grouping/CatalogLayoutColorGroupingView.tsx b/src/components/catalog/common/views/page/layout/color-grouping/CatalogLayoutColorGroupingView.tsx
new file mode 100644
index 00000000..45307324
--- /dev/null
+++ b/src/components/catalog/common/views/page/layout/color-grouping/CatalogLayoutColorGroupingView.tsx
@@ -0,0 +1,91 @@
+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
+{
+
+}
+
+export const CatalogLayoutColorGroupingView : FC = props =>
+{
+ const { roomPreviewer = null, pageParser = null } = props;
+ const [ colorableItems, setColorableItems ] = useState