mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-19 15:06:20 +00:00
388fb8ed34b18f8150ee3c8077763644042e0a1c
Second concrete adoption of proposal #2 (first was OfferView). Before - A useState<RoomEntryData[]>([]) for availableRooms. - A useMessageEvent<RoomAdPurchaseInfoEvent> handler that set the state on each parser event. - A useEffect on mount that dispatched two composers, one of which was GetRoomAdPurchaseInfoComposer paired with the parser above. After - A single useNitroQuery call wires the request and parser as one read-only query. The select extracts parser.rooms with a default empty array. - staleTime is 60s — opening the same panel within a minute reuses the cached value; the composer is not re-dispatched. Useful here because the user navigates between catalog tabs. - The mount-only useEffect no longer dispatches the room-ad composer; the second composer (GetUserEventCatsMessageComposer) stays where it was — that one feeds useNavigator state and isn't a request-response pair this component owns. Why this file - It was the cleanest pattern in the catalog tree: no correlation keys, no conditional filter on the parser, no other writes to availableRooms. The pure derive-from-event case useNitroQuery is built for. - The big god-hook useCatalog (1100 LOC) still owns most of the catalog data layer; migrating that needs the data/uiState/actions split first. Verification - yarn test: 49/49 still passing. - yarn eslint on the touched file: 1 error (the pre-existing set-state-in-effect on line 36, unchanged — baseline matches). - The previous useMessageEvent import was removed cleanly.
v2.2.0 -Nitro V3 !! Use at Own Risk as it is still in Beta !!
Prerequisites
- Git
- NodeJS >= 18
- If using NodeJS < 18 remove
--openssl-legacy-providerfrom the package.json scripts
- If using NodeJS < 18 remove
- Yarn
npm i yarn -g
Installation
- First you should open terminal and navigate to the folder where you want to clone Nitro and Nitro-Renderer
- Clone Nitro (Expl. C:\Github)
git clone https://github.com/duckietm/Nitro-V3.git<== For now switch to Dev-RendererV2git clone https://github.com/duckietm/Nitro_Render_V3.git- Install the dependencies for the renderer : cd C:\Github\Nitro_Render_V3
yarn install
- Now we will create a Link for the Nitro Renderer :
yarn linkThis will give you a link addressyarn link "@nitrots/nitro-renderer" - Install the dependencies for Cool UI : cd C:\Github\Nitro-V3
yarn installyarn link "@nitrots/nitro-renderer"<== This will link the renderer in the project
- Rename a few files
- Copy
public/configuration/renderer-config.exampletopublic/configuration/renderer-config.json - Copy
public/configuration/ui-config.exampletopublic/configuration/ui-config.json - Copy
public/configuration/client-mode.exampletopublic/configuration/client-mode.json - Set your links
- Open
public/configuration/renderer-config.json- Update
socket.url, asset.url, image.library.url, & hof.furni.url
- Update
- Open
public/configuration/ui-config.json- Update
camera.url, thumbnails.url, url.prefix, habbopages.url
- Update
yarn build<== the final step to build the DIST folder this is where your browser needs to point / or upload this to your /client if you do the compile on a other machine (preferd)- You can override any variable by passing it to
NitroConfigin the index.html
- Copy
Usage
- To use Nitro you need
.nitroassets generated, see nitro-converter for instructions - See Morningstar Websockets for instructions on configuring websockets on your server
Development
Run Nitro in development mode when you are editing the files, this way you can see the changes in your browser instantly
yarn start
Production
To build a production version of Nitro just run the following command
yarn build:prod
- A
distfolder will be generated, these are the files that must be uploaded to your webserver - Consult your CMS documentation for compatibility with Nitro and how to add the production files
Description
Languages
TypeScript
88.8%
CSS
8.3%
JavaScript
2.4%
HTML
0.5%