Commit Graph

397 Commits (ts-refactor)

Author SHA1 Message Date
Daniel Scalzi f139992e06
Dependency upgrade, replace moment with luxon. 2020-10-06 18:56:10 -04:00
Daniel Scalzi df74b0e67c
Convert media button CSS from px to rem. 2020-09-14 00:51:06 -04:00
Daniel Scalzi 6a04ef0f62
Move landing media buttons to their own component.
The media buttons can either open a link or perform an action.
TODO: Convert CSS from px to rem.
2020-09-13 22:18:08 -04:00
Daniel Scalzi e86992a7ee
Open anchor hrefs in the default browser. (#111) 2020-09-13 20:27:18 -04:00
Daniel Scalzi 9793c4072d
Convert server/account select overlay css from px to rem (#109). 2020-09-13 19:24:27 -04:00
Daniel Scalzi 043f85c0dc
Convert generic overlay css from px to rem. (#109) 2020-09-13 19:05:29 -04:00
Daniel Scalzi 0cbd39b79c
Move status refresh intervals to App component (resolves #107). 2020-09-13 18:43:01 -04:00
Daniel Scalzi 67e42ead78
Show player count on landing page.
The server status needs to be stored in the redux store as it needs to be determined before
mounting the Landing component.
2020-09-04 22:41:32 -04:00
Daniel Scalzi cb68c34abe
Bind server select button and store selected server in redux store. 2020-08-31 22:58:43 -04:00
Daniel Scalzi 574b362d12
Server select overlay working. 2020-08-31 20:31:50 -04:00
Daniel Scalzi dc00e6104b
Initial work on distro load logic.
Added new FATAL view to display information when a distro load fails. This replaces
the overlay behavior used on v1. The fatal view will eventually do an update check
and allow the user to update the app. This solves a potential issue of a user using
a very outdated launcher version, and the distro failing as a result.

Added new wrapper classes to store the distribution in the redux store.
2020-08-29 01:12:39 -04:00
Daniel Scalzi dbc49f51dd
Make sure to return on rejection. 2020-08-28 17:39:29 -04:00
Daniel Scalzi e76eb91ac9
Test improvements.
Clean mojang test directory.
Added test for server status.
Disable winston in test mode.
2020-08-27 21:55:24 -04:00
Daniel Scalzi c7b95f3719
Clean up structure of Mojang API/Util files. 2020-08-27 21:27:56 -04:00
Daniel Scalzi 571b788e25
A better solution to read long data.
Assign a once listener to pick up the initial data including the packet type and length.
Assign a subsequent listener to read the remainder of the data.
2020-08-27 21:08:53 -04:00
Daniel Scalzi 27f95235f8
Working fix for socket read for large response. Going to try another fix. 2020-08-27 20:45:11 -04:00
Daniel Scalzi 3838729da7
Add API to get server status information. 2020-08-27 19:37:41 -04:00
Daniel Scalzi feb9b98b2a
Add mojang statuses to landing component. 2020-08-24 21:26:24 -04:00
Daniel Scalzi bc43d842e3
Pull out common got error handling for generic use. Initial distribution loading (no application state storage yet). 2020-08-24 20:18:08 -04:00
Daniel Scalzi 15fd2c842a
Fix tests with tsconfig-paths. 2020-07-15 23:54:35 -04:00
Daniel Scalzi 53d5599545
Get working on Electron 9, full dependency refresh. 2020-07-15 21:07:40 -04:00
Daniel Scalzi 10c88aa7d0
Dependency upgrade. 2020-07-15 20:35:06 -04:00
Daniel Scalzi c670b7d88d
Initial work on overlay system.
The overlay display is driven by an array in the global redux store. Overlay
content is now queueabale, so alerts can be asynchronously dispatched without
interferring with existing displayed content.

The server/account select overlay components are yet to be completed. Some usability
features also need to be implemented, such as keybinds for the acknowledge/dismiss
buttons.
2020-06-12 20:58:07 -04:00
Daniel Scalzi 691cf937fc
Added landing view structure and styles.
The landing view will be broken up into subcomponents.
Updated dependencies.
2020-06-11 16:25:56 -04:00
Daniel Scalzi 33e454e529
Use rem on login view. 2020-05-27 16:54:52 -04:00
Daniel Scalzi ab51b84bea
Use rem for loading spinner, fix frame bug when loader is scaled up. 2020-05-26 23:25:02 -04:00
Daniel Scalzi d9394432d2
Add loading UI, add view transition animations.
Framework is in place to run initial load on app startup. These routines will be called
in Application's initLoad function. The loader will run for a min of 800ms to prevent it
from looking odd on the UI. This can be reduced/changed later if this turns out to not be
a concern.

Added an app reducer to redux. The loading state was initially going to be there. On further
inspection, it seemed better to have it as a state variable in the Application component. It
remains in the store for now as an example. The pattern is valid and will be used for other
proprties.

Added animations for view transitions. On v1, this was done with jquery. Here, we are using
react-transition-group. Got it working with a clever trick to store a workingView and use that
for rendering. When the currentView is changed by the redux store, the fade out transition will
start. Once the fade out completes, the workingView reference will be updated to the new view,
triggering the fade in.
2020-05-26 01:50:55 -04:00
Daniel Scalzi 18fbfe4289
Move backgrounds to static, get dynamic backgrounds to work.
TODO: Add loading spinner and make background load ease in.
2020-05-25 17:13:59 -04:00
Daniel Scalzi 7ef375db7a
Bring back eslint. 2020-05-24 19:11:34 -04:00
Daniel Scalzi dc7386f19d
Remove some old code, apply fix from master.
Reference to the old code will be made from the master branch.
2020-05-24 15:50:23 -04:00
Daniel Scalzi 9a67087766
Move code to common.
Renderer will be only react/redux code.
Common code can be used in both main and renderer.
2020-05-24 15:44:16 -04:00
Daniel Scalzi 5944f70a2a
Add login behavior up to loading state.
The remaining functionality depends on implementing a new AuthManager and overlay system.
2020-05-23 03:31:26 -04:00
Daniel Scalzi c718cc741a Add functionality to LoginField component.
State management and error detection/animation added.
TBD: Connect fields to parent component.
2020-05-23 02:03:20 -04:00
Daniel Scalzi f1a7e39e13
Initial work on Login view, fixed some style issues.
So far, the basic structure of the Login view has been imported. The css
properties need to be converted to use rem. The component also needs to
be made functional and reactive.

Planning on using property callbacks for Child -> Parent communication.
2020-05-22 22:41:47 -04:00
Daniel Scalzi a9d6f2021d
Use rem for sizing instead of px. Will enable scalability.
Applied rem changes to Welcome.css.
Updated dependencies.
2020-05-22 21:05:29 -04:00
Daniel Scalzi af6066115c
Dependency Upgrade. 2020-05-11 19:03:28 -04:00
Daniel Scalzi 3fcfa492af
Initial redux setup. 2020-05-06 07:35:25 -04:00
Daniel Scalzi 28f78f719e
Updated dependencies, added Welcome component.
The CSS needs to be redone and made more modular. Measurements should not be done in px, and switched to em/rem.
Redux needs to be setup for state management.
2020-05-05 18:39:31 -04:00
Daniel Scalzi c9147d86a8
Added Index Processor for Mojang Indices.
Also added test for the mojang processor.
TBD: Progress System for Validations.
TBD: Processor for Distribution.json.
2020-04-18 04:59:35 -04:00
Daniel Scalzi 8764c52fcc
Use Got instead of Axios.
The lack of maintainers on Axios is worrying. Got seems like a more solid option.
2020-04-17 23:50:18 -04:00
Daniel Scalzi 75a7e0f713
File structure refactor, move old files to old directory.
Removed legacy config path support in ConfigManager.
Moved model files to corresponding subdirectories, rather than being in
an uber model directory.
2020-04-13 22:51:32 -04:00
Daniel Scalzi 9097bafb5d
Added Axios + Logging & Testing Frameworks.
Rewrote mojang.ts to use axios. This included creating a more robust error handling
system and response payload structure. Also included unit tests.

Added axios (HTTP Library to replace request)
Added winston (Logging Framework)
Added mocha (Testing Framework)
Added chai (assertion library)
Added nock (mock server)
2020-04-13 22:21:48 -04:00
Daniel Scalzi 761a46060b
Add global styles, move fonts.
Need to figure out if the path trick to load fonts from css will work in prod.
May need to load fonts from tsx file and use __static.
2020-04-13 06:23:27 -04:00
Daniel Scalzi 3cde9ef75e
Simplify structure.
Now using electron-webpack.
Additional frameworks will be added down the line as this setup becomes
more comfortable.
2020-04-13 05:56:26 -04:00
Daniel Scalzi b9536ed014
Initial work on react.
Far from done.
Far from working.
Requires rewrite of UI logic using react patterns.
2020-03-08 20:40:37 -04:00
Daniel Scalzi 9cb10b70af
Working on typescript conversion, not functional yet. 2020-01-26 01:12:48 -05:00
Daniel Scalzi 96db607912
Fix mod loading for 1.7.10.
The launcher was never intended for use with 1.7.10, however since people
do use it for this version I generated a 1.7.10 distribution with Nebula
and tested it out. Several bugs were identified and fixed.

* Don't prefix modList paths with absolute on 1.7.10.
* Allow library overrides.

Forge 1.7.10 updates mojang's guava version. As such the library
resolver now supports overriding mojang libraries through the
distribution.json.

Fixes #45.
2020-01-18 12:02:00 -05:00
Daniel Scalzi 1110119df0
Dep upgrade, minor tweaks. 2020-01-17 04:42:16 -05:00
Daniel Scalzi 4f504cd470
Updated dependencies, deprecated methods. 2020-01-01 15:37:07 -05:00
Daniel Scalzi 19ee187f10
Electron v7, dependency upgrade, lint. 2019-11-16 17:17:55 -05:00