A react-based app to serve for Dynamo landing page.
The sidebar contains links to the 3 main modules of the Home Page:
- Recent - points to the last 'n' number of files (the number of recent files can be changed by the user in Dynamo preferences window)
- Samples - this is the location of the Sample files. Currently, this is empty under Dynamo Sandbox
- Learning - a one-stop-shop for Dynamo learning resources
Dynamo HomePage WebApp which is used inside Dynamo. This application is specific to Dynamo and utilizes several specific endpoints to work as intended.
For development, you will only need Node.js and a node global package, installed in your environment.
-
Just go on official Node.js website and download the LTS installer. Also, be sure to have
git
available in your PATH,npm
might need it (You can find git here). -
You can install nodejs and npm easily with apt install, just run the following commands.
sudo apt install nodejs sudo apt install npm
-
You can find more information about the installation on the official Node.js website and the official NPM website.
If the installation was successful, you should be able to run the following command (version outputs are just examples).
$ node --version
v20.10.0
$ npm --version
10.2.3
If you need to update npm
, you can make it using npm
!
npm install npm -g
git https://github.com/DynamoDS/DynamoHomePage (tbc)
cd DynamoHomePage
npm install --force
The project has sufficient assets to cover the base-case implementation during development.
npm start
npm run build
npm run build/bundle
Localization is done via react-intl
library. The current setup relies on the combination of these 2 elements:
- localization files stored inside the
\src\locales\
folder (add as many localization files as needed) - adding new locales to the switch statement inside the
localization.js
file:
export const getMessagesForLocale = (locale) => {
switch(locale) {
case 'en':
return englishMessages;
default:
return englishMessages;
}
};
The use of 3rd party libraries was kept to the bare minimum, where developing native elements would have resulted in exceptional time overhead.
- react-intl - library used for localization https://www.npmjs.com/package/react-intl
- react-split-pane - allows resizable (draggable) panel (used in the SidePanel) https://www.npmjs.com/package/react-split-pane
- react-table - a lightweight headless react table https://www.npmjs.com/package/react-table