mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-19 15:06:20 +00:00
5d8717dedb8c94e8e2c9b604add4a8e611406360
The single-file WiredCreatorToolsView.tsx was 4493 lines, which is one of the main reasons the React Compiler reports "Compilation Skipped: Existing memoization could not be preserved" on this module. Split is conservative — only the pure leading sections move out, the component itself is untouched (state, effects, JSX all stay in place). New files (sibling to the view): - WiredCreatorTools.types.ts (~233 lines): every interface and type alias declared at the top of the original file. - WiredCreatorTools.constants.ts (~225 lines): TABS, MONITOR_LOG_ORDER, poll constants, MONITOR_ERROR_INFO, INSPECTION_ELEMENTS, VARIABLES_ELEMENTS, EDITABLE_*, VARIABLE_DEFINITIONS, WIRED_FREEZE_EFFECT_IDS, TEAM_COLOR_NAMES, WEEKDAY/MONTH/DIRECTION names. The createVariableDefinition factory is kept as a local helper in this file (only used to build VARIABLE_DEFINITIONS). - WiredCreatorTools.helpers.ts (~147 lines): createEmptyMonitorSnapshot, getHotelTimeFormatter (with its module-private cache map), getHotelDateTimeParts, formatMonitorLatestOccurrence, formatMonitorHistoryOccurrence, formatVariableTimestamp, formatMonitorSource, normalizeMonitorReason. All pure (or cache-stable), no closure on component state. WiredCreatorToolsView.tsx changes: - 4493 -> 3901 lines (-592, ~13% reduction). - The four inspection-icon asset imports (furni/global/user/context) move to the constants file alongside the only consumers (INSPECTION_ELEMENTS / VARIABLES_ELEMENTS). - AvatarInfoFurni was only referenced by the extracted InspectionFurniSelection interface and is removed from the main file's api import. - New import block at the top pulls back the symbols actually used by the component body. Verification: - yarn eslint on the three new files: 0 errors / 0 warnings. - yarn eslint on WiredCreatorToolsView.tsx: 26 errors before split, 26 errors after split (identical pre-existing set; nothing new introduced). - yarn tsc --noEmit on the four files: clean (only the project-wide pre-existing TS2307 about @nitrots/nitro-renderer not being installed locally remains, same as before). This unblocks future per-tab splits (Monitor / Inspection / Variables JSX panels are still inline in the view and represent the next ~1600 lines that could move out, but require introducing a shared state context first since the current setState chain is intertwined). https://claude.ai/code/session_01GrR87LAqnAEyKG2ZbmQt5Q
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%