mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-19 15:06:20 +00:00
0ae371ee09e6adf55086998062ffc086d97162ec
Apply the same data/actions split pattern (proposal #4) to useFurniChooserWidget, the largest god-hook still on the widgets side (161 LOC). Layout follows the main branch convention: flat files under src/hooks/rooms/widgets/, no per-feature subfolder, no co-location of hooks inside src/components/. Split - src/hooks/rooms/widgets/useFurniChooserState.ts (new): owns the items array, the populateChooser action that scans the current room, the two RoomEngine event bridges (added/removed), and onClose. Helper buildWallItem/buildFloorItem dedupes the two copies of the RoomObjectItem construction that used to live inline in both populateChooser and the added-event handler (~50 lines of duplication removed). - src/hooks/rooms/widgets/useFurniChooserActions.ts (new): the one pure imperative action — selectItem — that doesn't need to subscribe to anything. - src/hooks/rooms/widgets/useFurniChooserWidget.ts: kept as a deprecated shim that composes both and returns the same { items, onClose, selectItem, populateChooser } shape so FurniChooserWidgetView (the only consumer) doesn't change. Layout note - This is consistent with the main branch: each widget hook is a flat file under src/hooks/rooms/widgets/ (no <feature>/ subfolder), while the view sits under src/components/room/widgets/<feature>/. - The parallel feat/react19-hooks-adapter branch chose the opposite convention (hooks co-located inside src/components/...). Per the team decision recorded in docs/ARCHITECTURE.md proposal #3, this repo stays on the flat-hooks-folder layout. Verification - yarn tsc on the touched files: 6 TS2347 errors after the split, 12 before — the buildWallItem/buildFloorItem helpers actually *reduce* the local sandbox TS2347 surface (the renderer SDK is not installed locally, so `roomObject.model.getValue<T>` is flagged as "untyped function with type arg"; merging the two callsites into one helper halves the count). - yarn eslint on the touched files: 0 errors, 0 warnings. - yarn test: 49/49 passing.
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%