Update nitro-renderer to @nitrots/nitro-renderer

This commit is contained in:
Bill 2021-08-05 23:38:57 -04:00
parent 6c23e3fade
commit f5b9bcc74c
255 changed files with 1993 additions and 2381 deletions

3565
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,7 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"@nitrots/nitro-renderer": "file:../nitro-renderer",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
@ -13,7 +14,6 @@
"animate.css": "^4.1.1",
"classnames": "^2.3.1",
"immutable": "^4.0.0-rc.14",
"nitro-renderer": "file:../nitro-renderer",
"node-sass": "^5.0.0",
"rc-slider": "^9.7.2",
"react": "^17.0.2",

View File

@ -1,11 +1,10 @@
import { ConfigurationEvent, LegacyExternalInterface, Nitro, NitroCommunicationDemoEvent, NitroEvent, NitroLocalizationEvent, RoomEngineEvent, WebGL } from 'nitro-renderer';
import { ConfigurationEvent, LegacyExternalInterface, Nitro, NitroCommunicationDemoEvent, NitroEvent, NitroLocalizationEvent, RoomEngineEvent, WebGL } from '@nitrots/nitro-renderer';
import { FC, useCallback, useState } from 'react';
import { GetCommunication, GetConfiguration, GetNitroInstance } from './api';
import { useConfigurationEvent } from './hooks/events/core/configuration/configuration-event';
import { useLocalizationEvent } from './hooks/events/nitro/localization/localization-event';
import { dispatchMainEvent, useMainEvent } from './hooks/events/nitro/main-event';
import { useRoomEngineEvent } from './hooks/events/nitro/room/room-engine-event';
import { AuthView } from './views/auth/AuthView';
import { LoadingView } from './views/loading/LoadingView';
import { MainView } from './views/main/MainView';
@ -13,7 +12,6 @@ export const App: FC<{}> = props =>
{
const [ isReady, setIsReady ] = useState(false);
const [ isError, setIsError ] = useState(false);
const [ isAuth, setIsAuth ] = useState(false);
const [ message, setMessage ] = useState('Getting Ready');
//@ts-ignore
@ -58,17 +56,8 @@ export const App: FC<{}> = props =>
case NitroCommunicationDemoEvent.CONNECTION_HANDSHAKING:
return;
case NitroCommunicationDemoEvent.CONNECTION_HANDSHAKE_FAILED:
const authEnabled = (GetConfiguration('auth.system.enabled') as boolean);
if(authEnabled)
{
setIsAuth(true);
}
else
{
setIsError(true);
setMessage('Handshake Failed');
}
setIsError(true);
setMessage('Handshake Failed');
return;
case NitroCommunicationDemoEvent.CONNECTION_AUTHENTICATED:
setMessage('Finishing Up');
@ -132,9 +121,8 @@ export const App: FC<{}> = props =>
return (
<div className="nitro-app">
{ (!isReady || isError) && !isAuth && <LoadingView isError={ isError } message={ message } /> }
{ (isReady && !isError && !isAuth) && <MainView /> }
{ isAuth && <AuthView /> }
{ (!isReady || isError) && <LoadingView isError={ isError } message={ message } /> }
{ (isReady && !isError) && <MainView /> }
</div>
);
}

View File

@ -1,4 +1,4 @@
import { IConfigurationManager } from 'nitro-renderer';
import { IConfigurationManager } from '@nitrots/nitro-renderer';
import { GetNitroCore } from './GetNitroCore';
export function GetConfigurationManager(): IConfigurationManager

View File

@ -1,4 +1,4 @@
import { INitroCore } from 'nitro-renderer';
import { INitroCore } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from '../nitro';
export function GetNitroCore(): INitroCore

View File

@ -1,4 +1,4 @@
import { RoomInfoComposer } from 'nitro-renderer';
import { RoomInfoComposer } from '@nitrots/nitro-renderer';
import { SendMessageHook } from '../../hooks/messages/message-event';
export function TryVisitRoom(roomId: number): void

View File

@ -1,4 +1,4 @@
import { ILinkEventTracker } from 'nitro-renderer';
import { ILinkEventTracker } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from './GetNitroInstance';
export function AddEventLinkTracker(tracker: ILinkEventTracker): void

View File

@ -1,4 +1,4 @@
import { INitroCommunicationManager } from 'nitro-renderer';
import { INitroCommunicationManager } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from './GetNitroInstance';
export function GetCommunication(): INitroCommunicationManager

View File

@ -1,4 +1,4 @@
import { IConnection } from 'nitro-renderer';
import { IConnection } from '@nitrots/nitro-renderer';
import { GetCommunication } from './GetCommunication';
export function GetConnection(): IConnection

View File

@ -1,4 +1,4 @@
import { INitro, Nitro } from 'nitro-renderer';
import { INitro, Nitro } from '@nitrots/nitro-renderer';
export function GetNitroInstance(): INitro
{

View File

@ -1,4 +1,4 @@
import { ILinkEventTracker } from 'nitro-renderer';
import { ILinkEventTracker } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from './GetNitroInstance';
export function RemoveLinkEventTracker(tracker: ILinkEventTracker): void

View File

@ -1,4 +1,4 @@
import { IPalette } from 'nitro-renderer';
import { IPalette } from '@nitrots/nitro-renderer';
import { GetAvatarRenderManager } from './GetAvatarRenderManager';
export function GetAvatarPalette(paletteId: number): IPalette

View File

@ -1,4 +1,4 @@
import { IAvatarRenderManager } from 'nitro-renderer';
import { IAvatarRenderManager } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetAvatarRenderManager(): IAvatarRenderManager

View File

@ -1,4 +1,4 @@
import { ISetType } from 'nitro-renderer';
import { ISetType } from '@nitrots/nitro-renderer';
import { GetAvatarRenderManager } from './GetAvatarRenderManager';
export function GetAvatarSetType(setType: string): ISetType

View File

@ -1,4 +1,4 @@
import { IRoomCameraWidgetManager } from 'nitro-renderer/src/nitro/camera/IRoomCameraWidgetManager';
import { IRoomCameraWidgetManager } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetRoomCameraWidgetManager(): IRoomCameraWidgetManager

View File

@ -1,4 +1,4 @@
import { MouseEventType } from 'nitro-renderer';
import { MouseEventType } from '@nitrots/nitro-renderer';
import { GetRoomEngine } from './GetRoomEngine';
import { SetActiveRoomId } from './SetActiveRoomId';

View File

@ -1,4 +1,4 @@
import { MouseEventType, TouchEventType } from 'nitro-renderer';
import { MouseEventType, TouchEventType } from '@nitrots/nitro-renderer';
import { GetRoomEngine } from './GetRoomEngine';
let didMouseMove = false;

View File

@ -1,4 +1,4 @@
import { IRoomObjectController, RoomObjectCategory } from 'nitro-renderer';
import { IRoomObjectController, RoomObjectCategory } from '@nitrots/nitro-renderer';
import { GetRoomSession, GetSessionDataManager } from '../session';
import { GetRoomEngine } from './GetRoomEngine';

View File

@ -1,4 +1,4 @@
import { IRoomEngine } from 'nitro-renderer';
import { IRoomEngine } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetRoomEngine(): IRoomEngine

View File

@ -1,4 +1,4 @@
import { NitroRectangle } from 'nitro-renderer';
import { NitroRectangle } from '@nitrots/nitro-renderer';
import { GetRoomEngine } from './GetRoomEngine';
export function GetRoomObjectBounds(roomId: number, objectId: number, category: number, canvasId = 1): NitroRectangle

View File

@ -1,4 +1,4 @@
import { RoomEngineObjectEvent, RoomObjectVariable } from 'nitro-renderer';
import { RoomEngineObjectEvent, RoomObjectVariable } from '@nitrots/nitro-renderer';
import { GetSessionDataManager } from '../..';
import { GetRoomEngine } from './GetRoomEngine';

View File

@ -1,4 +1,4 @@
import { IRoomSession, RoomControllerLevel } from 'nitro-renderer';
import { IRoomSession, RoomControllerLevel } from '@nitrots/nitro-renderer';
import { GetSessionDataManager } from '../..';
import { GetRoomEngine } from '../room/GetRoomEngine';
import { IsOwnerOfFurniture } from './IsOwnerOfFurniture';

View File

@ -1,4 +1,4 @@
import { AvatarAction, RoomObjectVariable } from 'nitro-renderer';
import { AvatarAction, RoomObjectVariable } from '@nitrots/nitro-renderer';
import { GetOwnRoomObject } from '../room';
export function GetCanStandUp(): string

View File

@ -1,4 +1,4 @@
import { RoomObjectVariable } from 'nitro-renderer';
import { RoomObjectVariable } from '@nitrots/nitro-renderer';
import { GetOwnRoomObject } from '../room';
export function GetCanUseExpression(): boolean

View File

@ -1,4 +1,4 @@
import { CatalogProductOfferData, FurnitureType, IFurnitureData } from 'nitro-renderer';
import { CatalogProductOfferData, FurnitureType, IFurnitureData } from '@nitrots/nitro-renderer';
import { GetSessionDataManager } from './GetSessionDataManager';
export function GetFurnitureDataForProductOffer(offer: CatalogProductOfferData): IFurnitureData

View File

@ -1,4 +1,4 @@
import { IFurnitureData, RoomObjectCategory, RoomObjectVariable } from 'nitro-renderer';
import { IFurnitureData, RoomObjectCategory, RoomObjectVariable } from '@nitrots/nitro-renderer';
import { GetRoomEngine } from '../room';
import { GetSessionDataManager } from './GetSessionDataManager';

View File

@ -1,4 +1,4 @@
import { AvatarAction, RoomObjectVariable } from 'nitro-renderer';
import { AvatarAction, RoomObjectVariable } from '@nitrots/nitro-renderer';
import { GetOwnRoomObject } from '../room';
export function GetOwnPosture(): string

View File

@ -1,4 +1,4 @@
import { IProductData } from 'nitro-renderer';
import { IProductData } from '@nitrots/nitro-renderer';
import { GetSessionDataManager } from './GetSessionDataManager';
export function GetProductDataForLocalization(localizationId: string): IProductData

View File

@ -1,4 +1,4 @@
import { IRoomSession } from 'nitro-renderer';
import { IRoomSession } from '@nitrots/nitro-renderer';
import { GetRoomSessionManager } from './GetRoomSessionManager';
export function GetRoomSession(): IRoomSession

View File

@ -1,4 +1,4 @@
import { IRoomSessionManager } from 'nitro-renderer';
import { IRoomSessionManager } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetRoomSessionManager(): IRoomSessionManager

View File

@ -1,4 +1,4 @@
import { ISessionDataManager } from 'nitro-renderer';
import { ISessionDataManager } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetSessionDataManager(): ISessionDataManager

View File

@ -1,4 +1,4 @@
import { HabboClubLevelEnum } from 'nitro-renderer';
import { HabboClubLevelEnum } from '@nitrots/nitro-renderer';
import { GetSessionDataManager } from './GetSessionDataManager';
export function HasHabboClub(): boolean

View File

@ -1,4 +1,4 @@
import { HabboClubLevelEnum } from 'nitro-renderer';
import { HabboClubLevelEnum } from '@nitrots/nitro-renderer';
import { GetSessionDataManager } from './GetSessionDataManager';
export function HasHabboVip(): boolean

View File

@ -1,4 +1,4 @@
import { IRoomObject, RoomObjectVariable } from 'nitro-renderer';
import { IRoomObject, RoomObjectVariable } from '@nitrots/nitro-renderer';
import { GetSessionDataManager } from '../../../api';
export function IsOwnerOfFurniture(roomObject: IRoomObject): boolean

View File

@ -1,4 +1,4 @@
import { RoomObjectVariable } from 'nitro-renderer';
import { RoomObjectVariable } from '@nitrots/nitro-renderer';
import { GetOwnRoomObject } from '../room';
export function IsRidingHorse(): boolean

View File

@ -1,4 +1,4 @@
import { IRoomSession } from 'nitro-renderer';
import { IRoomSession } from '@nitrots/nitro-renderer';
import { GetRoomSessionManager } from './GetRoomSessionManager';
export function StartRoomSession(session: IRoomSession): void

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class AchievementsUIEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class AvatarEditorEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class CatalogEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { CatalogPurchaseData } from 'nitro-renderer';
import { CatalogPurchaseData } from '@nitrots/nitro-renderer';
import { CatalogEvent } from './CatalogEvent';
export class CatalogPurchasedEvent extends CatalogEvent

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class FriendListEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class InventoryBadgesRequestEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class InventoryBadgesUpdatedEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class InventoryEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class UnseenItemTrackerUpdateEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class ModToolsEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class NavigatorEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class NotificationCenterAlertEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class NotificationCenterEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
export class WiredEvent extends NitroEvent
{

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
import { GetCommunication } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base';

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
import { GetConfigurationManager } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base';

View File

@ -1,4 +1,4 @@
import { IEventDispatcher, NitroEvent } from 'nitro-renderer';
import { IEventDispatcher, NitroEvent } from '@nitrots/nitro-renderer';
import { useEffect } from 'react';
export function CreateEventDispatcherHook(type: string, eventDispatcher: IEventDispatcher, handler: (event: NitroEvent) => void): void

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
import { GetAvatarRenderManager } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base';

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base';

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base';

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
import { GetNitroInstance } from '../../../api';
import { CreateEventDispatcherHook, DispatchEventHook } from '../event-dispatcher.base';

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
import { GetRoomEngine } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base';

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
import { GetRoomSessionManager } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base';

View File

@ -1,4 +1,4 @@
import { NitroEvent } from 'nitro-renderer';
import { NitroEvent } from '@nitrots/nitro-renderer';
import { GetSessionDataManager } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base';

View File

@ -1,4 +1,4 @@
import { EventDispatcher, IEventDispatcher, NitroEvent } from 'nitro-renderer';
import { EventDispatcher, IEventDispatcher, NitroEvent } from '@nitrots/nitro-renderer';
import { CreateEventDispatcherHook, DispatchEventHook } from '../event-dispatcher.base';
const uiEventDispatcher: IEventDispatcher = new EventDispatcher();

View File

@ -1,4 +1,4 @@
import { IMessageComposer, IMessageEvent, MessageEvent } from 'nitro-renderer';
import { IMessageComposer, IMessageEvent, MessageEvent } from '@nitrots/nitro-renderer';
import { useEffect } from 'react';
import { GetCommunication, GetConnection } from '../../api';

View File

@ -1,5 +1,4 @@
@import './shared/Shared';
@import './auth/AuthView';
@import './avatar-editor/AvatarEditorView';
@import './catalog/CatalogView';
@import './friend-list/FriendListView';

View File

@ -1,4 +1,4 @@
import { AchievementEvent, AchievementsEvent, AchievementsScoreEvent } from 'nitro-renderer';
import { AchievementEvent, AchievementsEvent, AchievementsScoreEvent } from '@nitrots/nitro-renderer';
import { FC, useCallback } from 'react';
import { CreateMessageHook } from '../../hooks/messages';
import { IAchievementsMessageHandlerProps } from './AchievementsMessageHandler.types';

View File

@ -1,4 +1,4 @@
import { AchievementData } from 'nitro-renderer';
import { AchievementData } from '@nitrots/nitro-renderer';
export class AchievementCategory
{

View File

@ -1,5 +1,5 @@
import { AchievementData } from '@nitrots/nitro-renderer';
import classNames from 'classnames';
import { AchievementData } from 'nitro-renderer';
import { FC, useCallback } from 'react';
import { LocalizeText } from '../../../../utils/LocalizeText';
import { BadgeImageView } from '../../../shared/badge-image/BadgeImageView';

View File

@ -1,11 +0,0 @@
.nitro-auth {
width: 100%;
height: 100%;
position: absolute;
.logo {
background: url('../../assets/images/nitro/nitro-light.svg') no-repeat center;
width: 45%;
height: 45%;
}
}

View File

@ -1,173 +0,0 @@
import classNames from 'classnames';
import { AuthenticationMessageComposer } from 'nitro-renderer';
import { AuthenticationEvent } from 'nitro-renderer/src/nitro/communication/messages/incoming/handshake/AuthenticationEvent';
import { FC, useCallback, useEffect, useState } from 'react';
import ReCAPTCHA from "react-google-recaptcha";
import { GetConfiguration } from '../../api';
import { CreateMessageHook, SendMessageHook } from '../../hooks/messages';
import { AuthField, AuthViewProps } from './AuthView.types';
import { AuthFormView } from './views/form/AuthFormView';
export const AuthView: FC<AuthViewProps> = props =>
{
const [ showLogin, setShowLogin ] = useState(true);
const [ registerEnabled, setRegisterEnabled ] = useState(false);
const [ isLoading, setIsLoading ] = useState(false);
const [ fields, setFields ] = useState<AuthField[]>(null);
const [ recaptchaPublicKey, setRecaptchaPublicKey ] = useState(null);
const [ recaptchaAnswer, setRecaptchaAnswer ] = useState(null);
useEffect(() =>
{
const configFields = GetConfiguration<AuthField[]>('auth.system.' + (showLogin ? 'login' : 'register') + '.fields');
if(configFields.length > 0) setFields(configFields);
const recaptchaKey = GetConfiguration<string>('auth.system.recaptcha.public_key');
if(recaptchaKey) setRecaptchaPublicKey(recaptchaKey);
const registerEnabledConfig = GetConfiguration<boolean>('auth.system.register.enabled');
if(registerEnabledConfig) setRegisterEnabled(true);
}, [ showLogin ]);
const setFieldValue = useCallback((key: string, value: string) =>
{
const fieldsClone = Array.from(fields);
const field = fieldsClone.find(field => field.name === key);
if(!field) return;
field.value = value;
setFields(fieldsClone);
}, [ fields ]);
const handleAuthentication = useCallback((data: any) =>
{
setIsLoading(false);
if(!data) return;
let ssoFieldName = 'sso';
if(GetConfiguration<boolean>('auth.system.http.enabled')) ssoFieldName = GetConfiguration<string>('auth.system.sso_field_name', 'sso');
if(!data[ssoFieldName]) return;
window.location.href = window.location.origin + '/?sso=' + data[ssoFieldName];
}, []);
const sendHttpAuthentication = useCallback((body: string) =>
{
const endpoint = (GetConfiguration('auth.system.http.endpoint.' + (showLogin ? 'login' : 'register')) as string);
if(!endpoint) return;
const requestOptions = {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: body
};
fetch(endpoint, requestOptions)
.then(response => response.json(), error =>
{
setIsLoading(false);
console.log('Login failed', error);
return null;
})
.then(data => handleAuthentication(data));
}, [handleAuthentication, showLogin]);
const sendPacketAuthentication = useCallback((keys: string[], values: string[]) =>
{
SendMessageHook(new AuthenticationMessageComposer((showLogin ? 'login' : 'register'), keys, values));
}, [ showLogin ]);
CreateMessageHook(AuthenticationEvent, event => handleAuthentication(Object.entries(event.parser)));
const sendAuthentication = useCallback(() =>
{
const recaptchaFieldName = GetConfiguration<string>('auth.system.recaptcha.field_name');
if(recaptchaPublicKey && (!recaptchaAnswer || !recaptchaFieldName)) return;
let fieldsOk = true;
const httpEnabled = GetConfiguration<boolean>('auth.system.http.enabled');
const requestData = {};
const requestKeys: string[] = [];
const requestValues: string[] = [];
fields.map(field =>
{
if(!field.value || field.value.length === 0)
{
fieldsOk = false;
return false;
}
if(httpEnabled)
requestData[field.name] = field.value;
else
{
requestKeys.push(field.name);
requestValues.push(field.value.toString());
}
return true;
});
if(!fieldsOk) return;
if(recaptchaPublicKey) requestData[recaptchaFieldName] = recaptchaAnswer;
setIsLoading(true);
if(httpEnabled)
{
sendHttpAuthentication(JSON.stringify(requestData));
}
else
{
sendPacketAuthentication(requestKeys, requestValues);
}
}, [recaptchaPublicKey, recaptchaAnswer, fields, sendHttpAuthentication, sendPacketAuthentication]);
const handleAction = useCallback((action: string, value?: string) =>
{
if(!action) return;
switch(action)
{
case 'toggle_login':
setShowLogin(value => !value);
return;
case 'recaptcha_load':
setRecaptchaAnswer(value);
return;
case 'send':
sendAuthentication();
return;
}
}, [sendAuthentication]);
if(!fields) return null;
return (
<div className="nitro-auth d-flex flex-column justify-content-center align-items-center w-100 h-100">
<div className="logo mb-4"></div>
<AuthFormView fields={ fields } isLoading={ isLoading } setFieldValue={ setFieldValue } />
{ recaptchaPublicKey && <ReCAPTCHA sitekey={ recaptchaPublicKey } onChange={ (event) => handleAction('recaptcha_load', event) } /> }
<div className="d-flex justify-content-center mt-3">
<button className="btn btn-success btn-lg me-2" disabled={ isLoading } onClick={ () => handleAction('send') }><i className={ 'fas ' + classNames({'fa-paper-plane': !isLoading, 'fa-spinner fa-spin': isLoading })}></i></button>
{ registerEnabled && <button className="btn btn-primary btn-lg" disabled={ isLoading } onClick={ () => handleAction('toggle_login') }><i className={'fas ' + classNames({'fa-user-plus': showLogin, 'fa-chevron-left': !showLogin})}></i></button> }
</div>
</div>
);
}

View File

@ -1,14 +0,0 @@
export interface AuthViewProps
{}
export class AuthField
{
constructor(
public name: string,
public label: string,
public type: string,
public col: number,
public value: string = ''
)
{}
}

View File

@ -1,30 +0,0 @@
import { FC, useCallback } from 'react';
import { AuthFormViewProps } from './AuthFormView.types';
export const AuthFormView: FC<AuthFormViewProps> = props =>
{
const { fields = null, setFieldValue = null, isLoading = null } = props;
const getFieldValue = useCallback((key: string) =>
{
const field = fields.find(field => field.name === key);
if(!field) return;
return field.value;
}, [ fields ]);
if(!fields) return null;
return (<>
<div className="row mt-3">
{ fields.map(field =>
{
return <div key={ field.name } className={ "mb-3 col-md-" + field.col }>
<h5>{ field.label }</h5>
<input type={ field.type } disabled={ isLoading } className="form-control" name={ field.name } value={ getFieldValue(field.name) || '' } onChange={(event) => setFieldValue(field.name, event.target.value.toString())} />
</div>;
}) }
</div>
</>);
}

View File

@ -1,8 +0,0 @@
import { AuthField } from './../../AuthView.types';
export interface AuthFormViewProps
{
fields: AuthField[];
setFieldValue: (key: string, value: string | number) => void;
isLoading: boolean;
}

View File

@ -1,4 +1,4 @@
import { AvatarDirectionAngle, AvatarEditorFigureCategory, FigureSetIdsMessageEvent, UserFigureComposer, UserWardrobePageComposer, UserWardrobePageEvent } from 'nitro-renderer';
import { AvatarDirectionAngle, AvatarEditorFigureCategory, FigureSetIdsMessageEvent, UserFigureComposer, UserWardrobePageComposer, UserWardrobePageEvent } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useState } from 'react';
import { GetClubMemberLevel, GetSessionDataManager } from '../../api';
import { AvatarEditorEvent } from '../../events/avatar-editor';

View File

@ -1,4 +1,4 @@
import { ColorConverter, IPartColor } from 'nitro-renderer';
import { ColorConverter, IPartColor } from '@nitrots/nitro-renderer';
export class AvatarEditorGridColorItem
{

View File

@ -1,4 +1,4 @@
import { AvatarFigurePartType, IAvatarImageListener, IAvatarRenderManager, IFigurePart, IFigurePartSet, IGraphicAsset, IPartColor, NitroContainer, NitroSprite, TextureUtils } from 'nitro-renderer';
import { AvatarFigurePartType, IAvatarImageListener, IAvatarRenderManager, IFigurePart, IFigurePartSet, IGraphicAsset, IPartColor, NitroContainer, NitroSprite, TextureUtils } from '@nitrots/nitro-renderer';
import { GetAvatarRenderManager } from '../../../api';
import { FigureData } from './FigureData';

View File

@ -1,4 +1,4 @@
import { IPartColor } from 'nitro-renderer';
import { IPartColor } from '@nitrots/nitro-renderer';
import { GetAvatarPalette, GetAvatarRenderManager, GetAvatarSetType, GetClubMemberLevel, GetConfiguration } from '../../../api';
import { AvatarEditorGridColorItem } from './AvatarEditorGridColorItem';
import { AvatarEditorGridPartItem } from './AvatarEditorGridPartItem';

View File

@ -1,4 +1,4 @@
import { AvatarEditorFigureCategory, AvatarScaleType, AvatarSetType, IAvatarImageListener } from 'nitro-renderer';
import { AvatarEditorFigureCategory, AvatarScaleType, AvatarSetType, IAvatarImageListener } from '@nitrots/nitro-renderer';
import { GetAvatarRenderManager } from '../../../api';
import { AvatarEditorUtilities } from './AvatarEditorUtilities';
import { CategoryBaseModel } from './CategoryBaseModel';

View File

@ -1,4 +1,4 @@
import { IPartColor } from 'nitro-renderer';
import { IPartColor } from '@nitrots/nitro-renderer';
import { AvatarEditorGridColorItem } from './AvatarEditorGridColorItem';
import { AvatarEditorGridPartItem } from './AvatarEditorGridPartItem';

View File

@ -1,4 +1,4 @@
import { AvatarFigureContainer, IFigurePartSet, IPalette, IPartColor, SetType } from 'nitro-renderer';
import { AvatarFigureContainer, IFigurePartSet, IPalette, IPartColor, SetType } from '@nitrots/nitro-renderer';
import { GetAvatarRenderManager } from '../../../api';
import { Randomizer } from '../../../utils';
import { FigureData } from './FigureData';

View File

@ -1,4 +1,4 @@
import { AvatarEditorFigureCategory } from 'nitro-renderer';
import { AvatarEditorFigureCategory } from '@nitrots/nitro-renderer';
import { CategoryBaseModel } from './CategoryBaseModel';
import { FigureData } from './FigureData';

View File

@ -1,4 +1,4 @@
import { AvatarEditorFigureCategory } from 'nitro-renderer';
import { AvatarEditorFigureCategory } from '@nitrots/nitro-renderer';
import { CategoryBaseModel } from './CategoryBaseModel';
import { FigureData } from './FigureData';

View File

@ -1,4 +1,4 @@
import { AvatarEditorFigureCategory } from 'nitro-renderer';
import { AvatarEditorFigureCategory } from '@nitrots/nitro-renderer';
import { CategoryBaseModel } from './CategoryBaseModel';
import { FigureData } from './FigureData';

View File

@ -1,4 +1,4 @@
import { UserWardrobeSaveComposer } from 'nitro-renderer';
import { UserWardrobeSaveComposer } from '@nitrots/nitro-renderer';
import { FC, useCallback, useMemo } from 'react';
import { Button } from 'react-bootstrap';
import { SendMessageHook } from '../../../../hooks';

View File

@ -1,4 +1,4 @@
import { CatalogApproveNameResultEvent, CatalogClubEvent, CatalogGiftConfigurationEvent, CatalogGroupsEvent, CatalogPageEvent, CatalogPagesEvent, CatalogPurchaseEvent, CatalogPurchaseFailedEvent, CatalogPurchaseUnavailableEvent, CatalogSearchEvent, CatalogSoldOutEvent, CatalogUpdatedEvent, SellablePetPalettesEvent, UserSubscriptionEvent } from 'nitro-renderer';
import { CatalogApproveNameResultEvent, CatalogClubEvent, CatalogGiftConfigurationEvent, CatalogGroupsEvent, CatalogPageEvent, CatalogPagesEvent, CatalogPurchaseEvent, CatalogPurchaseFailedEvent, CatalogPurchaseUnavailableEvent, CatalogSearchEvent, CatalogSoldOutEvent, CatalogUpdatedEvent, SellablePetPalettesEvent, UserSubscriptionEvent } from '@nitrots/nitro-renderer';
import { FC, useCallback } from 'react';
import { CatalogNameResultEvent, CatalogPurchaseFailureEvent } from '../../events';
import { CatalogPurchasedEvent } from '../../events/catalog/CatalogPurchasedEvent';

View File

@ -1,4 +1,4 @@
import { CatalogModeComposer, CatalogPageComposer, CatalogRequestGiftConfigurationComposer, ICatalogPageData, ILinkEventTracker, RoomPreviewer } from 'nitro-renderer';
import { CatalogModeComposer, CatalogPageComposer, CatalogRequestGiftConfigurationComposer, ICatalogPageData, ILinkEventTracker, RoomPreviewer } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useReducer, useState } from 'react';
import { AddEventLinkTracker, GetRoomEngine, RemoveLinkEventTracker } from '../../api';
import { CatalogEvent } from '../../events';

View File

@ -1,4 +1,4 @@
import { SellablePetPaletteData } from 'nitro-renderer';
import { SellablePetPaletteData } from '@nitrots/nitro-renderer';
export class CatalogPetPalette
{

View File

@ -1,4 +1,4 @@
import { CatalogPageOfferData, ICatalogPageData, ICatalogPageParser, IFurnitureData, SellablePetPaletteData } from 'nitro-renderer';
import { CatalogPageOfferData, ICatalogPageData, ICatalogPageParser, IFurnitureData, SellablePetPaletteData } from '@nitrots/nitro-renderer';
import { GetConfiguration, GetProductDataForLocalization, GetRoomEngine } from '../../../api';
export interface ICatalogOffers

View File

@ -1,4 +1,4 @@
import { CatalogGiftConfigurationParser } from 'nitro-renderer';
import { CatalogGiftConfigurationParser } from '@nitrots/nitro-renderer';
export class GiftWrappingConfiguration
{

View File

@ -1,4 +1,4 @@
import { CatalogClubOfferData, CatalogGiftConfigurationParser, CatalogGroupData, CatalogPageOfferData, ICatalogPageData, ICatalogPageParser } from 'nitro-renderer';
import { CatalogClubOfferData, CatalogGiftConfigurationParser, CatalogGroupData, CatalogPageOfferData, ICatalogPageData, ICatalogPageParser } from '@nitrots/nitro-renderer';
import { Reducer } from 'react';
import { CatalogPetPalette } from '../common/CatalogPetPalette';
import { ICatalogOffers, ICatalogSearchResult, SetOffersToNodes } from '../common/CatalogUtilities';

View File

@ -1,4 +1,4 @@
import { NitroToolbarAnimateIconEvent, TextureUtils, ToolbarIconEnum } from 'nitro-renderer';
import { NitroToolbarAnimateIconEvent, TextureUtils, ToolbarIconEnum } from '@nitrots/nitro-renderer';
import { FC, useCallback, useRef } from 'react';
import { GetRoomEngine } from '../../../../api';
import { CatalogEvent } from '../../../../events';

View File

@ -1,4 +1,4 @@
import { ICatalogPageData } from 'nitro-renderer';
import { ICatalogPageData } from '@nitrots/nitro-renderer';
import { FC, useEffect } from 'react';
import { CatalogSearchView } from '../search/CatalogSearchView';
import { CatalogNavigationViewProps } from './CatalogNavigationView.types';

View File

@ -1,4 +1,4 @@
import { ICatalogPageData } from 'nitro-renderer';
import { ICatalogPageData } from '@nitrots/nitro-renderer';
import { Dispatch, SetStateAction } from 'react';
export interface CatalogNavigationViewProps

View File

@ -1,4 +1,4 @@
import { CatalogPageComposer, ICatalogPageData } from 'nitro-renderer';
import { CatalogPageComposer, ICatalogPageData } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useState } from 'react';
import { SendMessageHook } from '../../../../../hooks/messages/message-event';
import { CatalogMode } from '../../../CatalogView.types';

View File

@ -1,4 +1,4 @@
import { ICatalogPageData } from 'nitro-renderer';
import { ICatalogPageData } from '@nitrots/nitro-renderer';
import { Dispatch, SetStateAction } from 'react';
export interface CatalogNavigationItemViewProps

View File

@ -1,4 +1,4 @@
import { ICatalogPageData } from 'nitro-renderer';
import { ICatalogPageData } from '@nitrots/nitro-renderer';
import { FC, useEffect, useState } from 'react';
import { CatalogNavigationItemView } from '../item/CatalogNavigationItemView';
import { CatalogNavigationSetViewProps } from './CatalogNavigationSetView.types';

View File

@ -1,4 +1,4 @@
import { ICatalogPageData } from 'nitro-renderer';
import { ICatalogPageData } from '@nitrots/nitro-renderer';
import { Dispatch, SetStateAction } from 'react';
export interface CatalogNavigationSetViewProps

View File

@ -1,4 +1,4 @@
import { Vector3d } from 'nitro-renderer';
import { Vector3d } from '@nitrots/nitro-renderer';
import { FC, useEffect } from 'react';
import { GetAvatarRenderManager, GetFurnitureDataForProductOffer, GetSessionDataManager } from '../../../../api';
import { FurniCategory } from '../../common/FurniCategory';

View File

@ -1,4 +1,4 @@
import { RoomPreviewer } from 'nitro-renderer';
import { RoomPreviewer } from '@nitrots/nitro-renderer';
export interface CatalogPageViewProps
{

View File

@ -1,4 +1,4 @@
import { ICatalogPageParser, RoomPreviewer } from 'nitro-renderer';
import { ICatalogPageParser, RoomPreviewer } from '@nitrots/nitro-renderer';
export interface CatalogLayoutProps
{

View File

@ -1,4 +1,4 @@
import { ICatalogPageParser, RoomPreviewer } from 'nitro-renderer';
import { ICatalogPageParser, RoomPreviewer } from '@nitrots/nitro-renderer';
import { CatalogLayoutBadgeDisplayView } from './badge-display/CatalogLayoutBadgeDisplayView';
import { CatalogLayoutDefaultView } from './default/CatalogLayoutDefaultView';
import { CatalogLayoutFrontpage4View } from './frontpage4/CatalogLayoutFrontpage4View';

View File

@ -1,4 +1,4 @@
import { StringDataType } from 'nitro-renderer';
import { StringDataType } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useMemo, useState } from 'react';
import { InventoryBadgesUpdatedEvent } from '../../../../../../events';
import { InventoryBadgesRequestEvent } from '../../../../../../events/inventory/InventoryBadgesRequestEvent';

Some files were not shown because too many files have changed in this diff Show More