Age | Commit message (Collapse) | Author |
|
* feat: add ThunderstoreMod type
* feat: add view component to develop mods layout
* feat: mount view component in router
* feat: display thunderstore section in menu
* refactor: create thunderstore package
* feat: add ThunderstoreModVersion type
* feat: add icon field to mod version type
* feat: add basic card layout for mods
* refactor: card button text is computed
In the future, we want the button text to change regarding status of the current
mod (installed, deprecated or not installed at all).
* feat: display mod owners
* feat: display download and like counts
* feat: fetch mods from Thunderstore API
* fix: type issue
* fix: prevent texts from overflowing
* fix: all cards have same height
* feat: add some space between cards
* feat: add basic search bar to filter mods
* fix: convert search string to lowercase to avoid font case issues
* feat: remove some mods from listing
* feat: a button opens mod page on Thunderstore website
* feat: display some text if no mod matched searched words
* fix: description size
* fix: display mod's total downloads count
* docs: add documentation to methods
* refactor: store thunderstore mods in store
* docs: remove TODO notes
* style: add trailing line to ThunderstoreModVersion.d.ts
* feat: cards container is responsive
Mods cards will always appear centered on the screen, and cards container
width adjusts to window width.
* fix: debounce mods filtering
Since filtering mods with search string is costly, we don't do it for each
character entered into search bar, but rather wait (300ms) for the user to
stop typing.
* feat: add full_name field to ThunderstoreModVersion type
* feat: mods can be installed by clicking the card button
* feat: card displays a loader while mod is being installed
* refactor: move installed mods list to frontend store
Installed mods are now stored in the frontend store, so they can be used in
all views.
* feat: card button text varies regarding current mod's status
Button can now tell if current mod is being installed, or if it is already installed
on local file system.
* refactor: export mod status computation in a dedicated method
* feat: color buttons regarding associated mod's state
* fix: set search debounce timeout to 200ms
* refactor: local mods load is done by frontend store
* fix: load locally-installed mods before fetching thunderstore mods
* fix: display mods while typing in search bar
* fix: type issue
* fix: CI doesn't know NodeJS namespace
* fix: adjust NorthstarMod member types (string instead of String)
* feat: tell if a mod is outdated by checking its Thunderstore dependency string prefix
* fix: update mods list after installing one from Thunderstore
This way, after installing a mod, button text will display "Installed" instead
of "Install".
* refactor: export Thunderstore mod card to dedicated component file
* refactor: rename computed variables
* fix: use computed latestVersion member
* feat: display "updating" on button when updating an already-installed mod
* feat: add some background blur on thunderstore mods view
* Update src-vue/src/views/ThunderstoreModsView.vue
* Update src-vue/src/plugins/store.ts
* fix: zoom background container a bit to hide white border on Windows
|
|
Getting log files is part of repair and troubleshooting
|
|
|
|
With Viper 1.6.3, stack traces are not shown by default, instead a
simple "Unknown Error!" toast is shown, where a user can choose to click
it, to then see the stack.
|
|
* feat: Store gameinstall in persistent store
This includes both path and type (Steam/Origin/EA/UNKNOWN)
* feat: Add method to clear persistent store
* fix: Only check for NS version if installed
Otherwise we incorrectly set the button to `Install`.
* fix: Remove leftover `console.log()`
|
|
|
|
|
|
Setting install path manually when one exists already will error out on
trying to delete the non-existing "no install found" notification using
its non-existing handle.
|
|
|
|
|
|
* refactor: Rename function
to better differentiate what it does
* refactor: Add TS mod string field to NS mod struct
This allows us to expose to frontend which Thunderstore mod a Northstar
mod may belong to. Field is optional as not all mods may contain a
Thunderstore mod string for example when they were installed manually.
* feat: Add TS mod string field to NS mod interace
* feat: Parse TS mod string and expose to frontend
* fix: Mark unused variable as such
|
|
* feat: Initial support for installing mods from TS
This is the basic code needed to install a mod from Thunderstore
* refactor: Remove console log, show msg in notif
Instead of console logging result message, show it in notification
instead.
* refactor: Rename function to indicate behaviour
Function not only installs but also downloads mod first.
Although it does remove downloaded zip post installation.
* refactor: Move install logic to dedicated module
`mod_management` module didn't exist when this PR was created
* chore: Trim single leftover newline
* fix: Update code for newer `libthermite` version
* feat: Allow installing older versions of mods
Installs the given version number instead of only allowing latest.
* fix: Explicit error msg for installing NS as mod
While it would fail during install anyway, having explicit error message
is nicer
* feat: Write TS mod string to mod.json
Write Thunderstore mod string of installed mod to its `mod.json`
This way we can later check whether a mod is outdated based on the
Thunderstore mod string
* fix: Early return on empty string
Prevent trying to install the first mod that matches an early string. We
should never pass an empty string in the first place but better safe
then sorry.
* build: Add dependency for recursive async
Needed for recursive mod dependency install
* feat: Recursively install mod dependencies
* fix: Early catch installing R2modman as mod
Just in case to prevent someone trying to install R2modman as a mod.
* refactor: Remove debug prints
* fix: Allow installing mods having NS as dependency
They would previously error out as Northstar cannot be installed as
dependency. We now catch that specific error and return Ok(())
* fix: Delete download folder after mod install
Deletes download folder after mod install if non-empty.
* fix: Do not early leave when dependency is NS
Logic error, instead of skipping installing Northstar as dependency it
would previously just return early with success.
* chore: Remove leftover commented out code
|
|
* feat: add element-plus scrollbar to mods view
* refactor: remove unused style
|
|
|
|
* refactor: Import all functions from lib
So that I don't need to update the header each time I add/remove a
function.
* refactor: Move function to submodule
Move it to module for GitHub API related tasks.
* refactor: Re-use existing func for fetching GH API
|
|
* feat: Show stripped title bar on debug build
Helps with differentiating which window is which when both developing
FlightCore and is using release version at the same time.
* fix: Only show striped menubar for debug builds
|
|
|
|
Some mods have comments in their JSON. Northstar handles it fine, so we
should too.
|
|
So that it can be re-used by other functions later such as for checking
newest FlightCore version by checking against GitHub releases.
|
|
|
|
|
|
as opposed to using an empty string to indicate an error.
|
|
instead of clicking Northstar version.
Makes dev mode a bit more "hidden" (i.e. less likely to be accidentally
opened by end-user) and it's more logical to click FlightCore version to
open **FlightCore** dev mode as opposed to clicking Northstar version.
|
|
Version 2 uses Node 12 which is being deprecated by GitHub.
Version 3 should use Node 16 instead.
|
|
|
|
* feat: Parse actually installed mods
Instead of using solely `enabledmods.json` parse the `mod.json` of found
mods in `mods` folder.
* refactor: Remove leftover print statements
* refactor: Move logic into dedicated module
* fix: Load mods despite `enabledmods.json` missing
Previously we would error out early if `enabledmods.json` was missing
despite not actually needing it for mod list.
* style: Autoformat
|
|
* feat: add Rust method to fetch Northstar release notes
* feat: fetch release notes on changelog view mount
* feat: only transmit some info to frontend
GitHub API gives much information about releases, we only need some: name,
publication date and content of such release; so other information is not
transmitted to UI.
* feat: add ReleaseInfo Typescript interface matching Rust struct
* feat: display release notes on a timeline
* refactor: remove old releases external link
* build: add marked dependency
* build: add marked types dev dependency
* feat: format release notes' markdown
* fix: member typo in ReleaseInfo interface
* fix: type releases array
* fix: open github links in external browser
* fix: adjust marked import
* refactor: store release notes in store
Release notes are now stored in the app store, so we don't have to
fetch them multiple times.
* fix: notes fetching method is now async
* feat: display a loading bar while release notes are being fetched
* feat: display dates in white
* feat: release notes' dates are human-readable
* fix: make menu bar appear on top of release notes view when scrolled
* feat: add custom scrollbar
* refactor: format releases creation to please reviewer
* Update src-tauri/src/github/mod.rs
* Update src-tauri/src/github/release_notes.rs
* Update src-vue/src/utils/ReleaseInfo.d.ts
* fix: augment scrollbar opacity
* fix: only display releases' release date (no more time of the day)
* fix: adjust Github request user agent
* style: add missing end line in src-vue/src/style.css
* fix: link formatting only targets GitHub PR links (whose name begins with a #)
* fix: timeline element children cannot be bigger than container card
|
|
* style: Add `.editorconfig` file
Describes some basic formatting like indentation with spaces,
indentation size, final newlines, etc
* docs: Add explanation for EditorConfig
|
|
Only a single function for now as a sort of proof-of-concept.
|
|
|
|
Set the function to async but it was still using blocking version of
reqwest.
|
|
All that is returned as the error type is a string so there's no point
in using a custom error type when we can just have the error type be a
string.
Co-authored-by: Remy Raes <contact@remyraes.com>
|
|
This way none of them are run on main thread and as such if a function
panics, it will only crash that specific thread allowing the rest of the
application to survive.
The only exception is `force_panic()` as its purpose is hard crashing
the application.
From the frontend side of things, `invoke()` is already async, so no
frontend changes are needed.
|
|
Instead of re-implementing existing logic just re-use what we already
have.
|
|
* feat: Enable toggling enabled mods
Co-authored-by: pg9182 <96569817+pg9182@users.noreply.github.com>
* chore: Update leftover comment
Co-authored-by: pg9182 <96569817+pg9182@users.noreply.github.com>
|
|
Simply parses `enabledmods.json`.
In the future we should also opt to check individual mods and compare
with the JSON file.
|
|
|
|
* feat: Backend code to get list of installed mods
For now simply parses `enabledmods.json`.
Note that this file will not be up-to-date if the user just installed a
mod but hasn't launched Northstar yet.
* feat: Empty skeleton page for ModsView
Will be populated later with list of installed mods
* chore: Remove leftover print statement
|
|
* refactor: Add error return type
* style: Auto-format
Only minor changes, did not take over all changes from auto-format.
* refactor: Rename function to get FC version number
To make it more clear which version number we're getting
(FlightCore vs Northstar)
|
|
refactor: Router view
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|