Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 3.1.56 (Develop) #1644

Merged
merged 135 commits into from
Feb 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
1897212
Updated Hero component to remove dependency on class name. Replaced u…
ebkr Nov 6, 2024
4f7dc85
Removed "danger" from allowed types. Subtitle text color is different…
ebkr Nov 6, 2024
67fa1c7
Removed dependency on bulma hero-body and container classes. Renamed …
ebkr Nov 8, 2024
37681d5
WIP: Updated tests.
ebkr Nov 9, 2024
50102f7
Added "Other" selection option for Bomb Rush Cyberfunk
ebkr Dec 11, 2024
d634bbc
Removed useless hero test
ebkr Dec 11, 2024
0fb987d
Merge pull request #1585 from ebkr/brc-other
ebkr Dec 11, 2024
9fc45c4
Updated node build version
ebkr Dec 11, 2024
c051030
Updated node version to 20.11.0 on test workflow
ebkr Dec 11, 2024
9c2b0b1
Merge pull request #1530 from ebkr/feature/vue27/components
ebkr Dec 11, 2024
d34acbb
Update DevEnvSetup.md
ebkr Dec 11, 2024
f593cc7
Update BUILDING.md
ebkr Dec 11, 2024
a276266
Fixed hero subtitle colour
ebkr Dec 11, 2024
10af1db
More immutable profile (#1579)
VilppeRiskidev Dec 13, 2024
8e87402
Use fallback image if mod icon isn't found on disk
anttimaki Dec 13, 2024
0c9d999
Add game: Subterror
VilppeRiskidev Dec 16, 2024
968ba66
Merge pull request #1593 from ebkr/add-game-subterror
anttimaki Dec 17, 2024
023f752
Remove ununsed LocalModInstaller method
anttimaki Dec 5, 2024
a45ff03
Reduce places where mm_v2_manifest.json is written to disk
anttimaki Dec 5, 2024
16e713d
Reduce places where LocalModInstaller defines the cache path
anttimaki Dec 5, 2024
975fc54
Remove callback from ZipExtract.extractOnly
anttimaki Dec 9, 2024
f8147e7
Remove callbacks from LocalModInstallerProvider methods
anttimaki Dec 12, 2024
9057fa9
DRY throwForR2Error
anttimaki Dec 12, 2024
e786684
Remove outdated help text
anttimaki Dec 20, 2024
c24188a
Reduce time spent on the splash screen
anttimaki Oct 31, 2024
ebd0ced
Add ModListUpdateBanner
anttimaki Nov 14, 2024
01d278c
Update package exclusion list in Splash screen only if it's needed
anttimaki Nov 14, 2024
ff560ff
Fix an issue with exclusion list not getting updated when needed
anttimaki Nov 14, 2024
5247708
Rename method and attributes to make their usage clearer
anttimaki Nov 25, 2024
906f973
Rename Vuex store attributes and methods
anttimaki Nov 25, 2024
66a1da7
Rename ambiguous "connectionError"
anttimaki Nov 25, 2024
f02ae6d
Move refreshThunderstoreModList to Vuex
anttimaki Nov 26, 2024
77b2db8
Change how online mod list update process works
anttimaki Nov 27, 2024
bc97cde
Unify mod list update related functionality from Vue components to Vuex
anttimaki Dec 18, 2024
fd2b4e3
Move profile selection further up the profile import flow
anttimaki Nov 18, 2024
66d7166
Extend the argument types accepted by Vuex methods
anttimaki Nov 25, 2024
0e492c3
Combine preview modals when importing a profile
anttimaki Nov 25, 2024
b8a5f50
Allow triggering online mod list update in profile import modal
anttimaki Dec 20, 2024
7b6d3e7
Change when and how the mod exclusion list is loaded
anttimaki Dec 31, 2024
2b76ee9
Drop support for game specific exclusion lists
anttimaki Dec 31, 2024
1d208af
Change default exclusion list from undefined to empty array
anttimaki Jan 2, 2025
9277880
Make package list processing more serial
anttimaki Jan 3, 2025
5e0b74b
Unify action naming TsModsModule
anttimaki Jan 3, 2025
13561f4
Store package list update errors as Error rather than string
anttimaki Jan 8, 2025
5db4390
Gather optional arguments of retry() helper to an object
anttimaki Jan 8, 2025
4ed6906
Don't let retry() hide the original error when updating package list
anttimaki Jan 8, 2025
4faf49f
Fix downloading a dependency for an already installed mod
anttimaki Jan 8, 2025
55d059a
Turn off autocomplete for text inputs
anttimaki Jan 10, 2025
97aa6a0
Fix management of installation state tracking file
anttimaki Jan 10, 2025
4d100e2
Merge pull request #1552 from ebkr/splash-speedrun
anttimaki Jan 13, 2025
bf0fd26
Merge pull request #1553 from ebkr/splash-speedrun-pt2
anttimaki Jan 13, 2025
4d59649
Merge pull request #1554 from ebkr/splash-speedrun-pt3
anttimaki Jan 13, 2025
363798e
Merge pull request #1597 from ebkr/splash-speedrun-pt4
anttimaki Jan 13, 2025
5924f38
Merge pull request #1598 from ebkr/splash-speedrun-pt5
anttimaki Jan 13, 2025
6eb1845
Merge pull request #1603 from ebkr/exclusions-refactor
anttimaki Jan 13, 2025
e6f9128
Merge pull request #1605 from ebkr/serial-chunker
anttimaki Jan 13, 2025
4e14df5
Merge pull request #1609 from ebkr/package-list-error-presentation
anttimaki Jan 13, 2025
d993434
Merge pull request #1612 from ebkr/autocomplete-off
anttimaki Jan 13, 2025
4fbf028
Add game I Am Your Beast
VilppeRiskidev Jan 7, 2025
88d70d4
Add game MiSide
VilppeRiskidev Jan 7, 2025
b35f7fc
Move mod version downloading logic and state management to Vuex state
VilppeRiskidev Dec 12, 2024
c8175d2
Minor fixes, mostly object type stuff
VilppeRiskidev Dec 13, 2024
9503e72
Add a getter activeDownloadCount
VilppeRiskidev Dec 13, 2024
17556bc
Move downloadCompletedCallback functions main business logic to
VilppeRiskidev Dec 17, 2024
54224fd
Move downloadCompletedCallback to DownloadMixin to make it easier to
VilppeRiskidev Dec 17, 2024
bd954c4
Optimize imports
VilppeRiskidev Dec 18, 2024
61c3b3f
Remove unnecessary try/catch wrapping
VilppeRiskidev Dec 19, 2024
8529adb
Clean up the downloadn state management Vuex store and it's usages
VilppeRiskidev Dec 18, 2024
1d713e5
Move more of the logic to Vuex and thus simplify the UI component sid…
VilppeRiskidev Jan 2, 2025
6f5be37
Improve error handling logic and do some cleanup
VilppeRiskidev Jan 7, 2025
e2ff723
Fix a bug where error handling would be stopping downloads
VilppeRiskidev Jan 7, 2025
a47e86b
Clean up the download state management Vuex store and it's usages
VilppeRiskidev Jan 8, 2025
dd07a49
Separate UpdateAllInstalledModsModal to its own component
VilppeRiskidev Jan 8, 2025
20c4366
Move download progress modal open state management to vuex store
VilppeRiskidev Jan 8, 2025
0157450
Add setting for resetting online mod list stored in IndexedDB
anttimaki Dec 23, 2024
afa6461
Merge pull request #1607 from ebkr/add-game-i-am-your-beast
anttimaki Jan 14, 2025
828944c
Merge pull request #1606 from ebkr/add-game-miside
anttimaki Jan 14, 2025
e62b2e6
Simplify DownloadMonitor by getting rid of timeout
VilppeRiskidev Jan 10, 2025
21ba621
Merge pull request #1614 from ebkr/simplify-download-monitor
anttimaki Jan 15, 2025
f5137c6
Merge pull request #1588 from ebkr/local-import-cleanup
anttimaki Jan 15, 2025
b64a321
Merge pull request #1589 from ebkr/local-import-cleanup-pt2
anttimaki Jan 15, 2025
fb73945
Merge pull request #1591 from ebkr/icon-fallback
anttimaki Jan 15, 2025
af87843
Merge pull request #1599 from ebkr/no-more-lies
anttimaki Jan 15, 2025
bf235bb
Merge pull request #1602 from ebkr/package-db-reset
anttimaki Jan 15, 2025
27d1d87
Merge pull request #1611 from ebkr/dependency-download-fix
anttimaki Jan 15, 2025
14204e6
Merge pull request #1613 from ebkr/fix-state-file-management
anttimaki Jan 15, 2025
fa65165
Fix version number stringification when updating all installed mods
anttimaki Jan 15, 2025
79f25c8
Merge pull request #1618 from ebkr/fix-update-all-stringification
anttimaki Jan 15, 2025
e211c04
Reset cache update date shown on UI when the cache is purged
anttimaki Jan 16, 2025
b44ae70
Cache whether the active game has a package list in IndexedDB
anttimaki Jan 16, 2025
13dde43
Fix MiSide Game definition by correcting the exe name
VilppeRiskidev Jan 16, 2025
669d972
Merge pull request #1620 from ebkr/fix-miside-exe
anttimaki Jan 17, 2025
1c6db46
Lock both source and destination files when copying or renaming files
anttimaki Jan 17, 2025
4c8f91c
Merge pull request #1619 from ebkr/cache-reset-improvements
anttimaki Jan 20, 2025
eaefc7d
Implement some of the code review comments for PR #1598
anttimaki Jan 20, 2025
6f1cfc6
Merge pull request #1622 from ebkr/pr-1598-changes
anttimaki Jan 27, 2025
cbbf040
Improve "enter profile code" phase of profile import modal
anttimaki Jan 22, 2025
fa7faed
Merge pull request #1624 from ebkr/import-code-improvements
anttimaki Jan 27, 2025
6b86dd6
Remove invalid manifest locations from list before attempting to sear…
ebkr Jan 27, 2025
1d33c88
Add option for copying troubleshooting information to clipboard
anttimaki Jan 28, 2025
9e730e3
Separate the version determination function from the download function
VilppeRiskidev Jan 14, 2025
9ca4173
Simplify download logic by omitting callback
VilppeRiskidev Jan 14, 2025
2d0cc91
Simplify download logic by omitting callback
VilppeRiskidev Jan 14, 2025
09fd3bf
Move download progress callbacks to DownloadMixin
VilppeRiskidev Jan 23, 2025
7680c4b
Show failed download status unambiguously in DownloadMonitor
VilppeRiskidev Jan 27, 2025
fb6ad5d
Rename progress to downloadProgress
VilppeRiskidev Jan 23, 2025
1c37df5
Add installationProgress to the Vuex store, update the value when ins…
VilppeRiskidev Jan 23, 2025
a7b06bd
Show installation progress in the DownloadMonitor correclty
VilppeRiskidev Jan 23, 2025
bc47bc5
Obfuscate Windows usernames from troubleshooting info
anttimaki Jan 29, 2025
c359b28
Further improve installation progress tracking
VilppeRiskidev Jan 28, 2025
d03f65a
Fix issues with mod download/install progress tracking
VilppeRiskidev Feb 3, 2025
fe891c2
Update ModLoaderVariantRecord.ts
x753 Jan 29, 2025
46d7cdb
Merge pull request #1631 from ebkr/amogus
x753 Feb 5, 2025
9be88b0
Merge pull request #1628 from ebkr/troubleshooting-info
anttimaki Feb 6, 2025
813eb24
Check that the manifest directory exists before attempting to read th…
ebkr Feb 15, 2025
67b5008
Merge pull request #1586 from ebkr/vue27/hero-subtitle-colour
ebkr Feb 15, 2025
b27d10a
Update GameManager.ts
x753 Feb 16, 2025
3fac4a8
Update games.json
x753 Feb 16, 2025
83f49ca
Merge pull request #1635 from ebkr/aloft-fix
x753 Feb 16, 2025
eb4dd72
Merge pull request #1621 from ebkr/more-file-locks
anttimaki Feb 17, 2025
b73c3fe
Add RecursiveMelonLoaderInstaller
anttimaki Dec 9, 2024
260adfe
Rename method
anttimaki Feb 18, 2025
b14c21e
Add support for Dale & Dawson Stationery Supplies
anttimaki Dec 9, 2024
bb1b9fb
Ensure manifest.json is present in all locally imported mods
anttimaki Feb 18, 2025
11279f2
Merge pull request #1583 from ebkr/new-melonloader
anttimaki Feb 19, 2025
90b804a
Merge pull request #1584 from ebkr/dale-dawson
anttimaki Feb 19, 2025
b81777e
Merge pull request #1636 from ebkr/local-import-manifest
anttimaki Feb 19, 2025
a362322
Fix getModList errors being silently ignored
VilppeRiskidev Feb 3, 2025
ad85719
Merge pull request #1617 from ebkr/download-completed-callback-improv…
anttimaki Feb 24, 2025
dfaca8c
Merge pull request #1625 from ebkr/mod-installation-progress-tracking
anttimaki Feb 24, 2025
38b4211
Fix a bug in activeDownloadCount which caused mods in installation step
VilppeRiskidev Feb 24, 2025
998d1c8
Merge pull request #1641 from ebkr/fix-active-download-count
anttimaki Feb 25, 2025
3ab1b59
Merge pull request #1627 from ebkr/prevent-error-when-drive-does-not-…
ebkr Feb 26, 2025
b36ed0a
Updated CHANGELOG and versions
ebkr Feb 26, 2025
004effc
Merge pull request #1643 from ebkr/release-3.1.56
ebkr Feb 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
uses: actions/setup-node@v3
with:
# The talk on the street says this might be a good version for building.
node-version: 19.2.0
node-version: 20.11.0
cache: yarn

- name: Install Yarn dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
uses: actions/setup-node@v3
with:
# The talk on the street says this might be a good version for building.
node-version: 19.2.0
node-version: 20.11.0
cache: yarn

- name: Install Yarn dependencies
Expand Down
4 changes: 2 additions & 2 deletions BUILDING.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Setting Up
### Prerequisites
- Node.js (>=18.0.0)
- Node.js (>=20.0.0)
- Yarn
- Quasar CLI (Install using `yarn global add @quasar/cli`)
- Python2 (EOL for 4 years. Goodluck!)
- Python 2

#### Linux Build
- rpm builder
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
### 3.1.56
#### Games added
- Subterror
- MiSide
- Dale & Dawson
- I Am Your Beast
- Bomb Rush Cyberfunk
- Added "Other" option
- Aloft
- Correct AppID is used to launch on Steam

#### Notable changes
- Faster access to the profile selection screen

### 3.1.55
#### Games added
- ATLYSS
Expand Down
4 changes: 2 additions & 2 deletions DevEnvSetup.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
2. Install NVM (Node Version Manager)
3. Open Git Bash as admin
4. Go into repo root folder
5. Run `nvm install 14`
6. Run `nvm use 14.X.X` with "X" replaced with the version NVM installed. e.g. `nvm use 14.21.1`
5. Run `nvm install 20`
6. Run `nvm use 20.X.X` with "X" replaced with the version NVM installed. e.g. `nvm use 20.21.1`
7. Run `npm install --global yarn`
8. Exit Git Bash
9. Open PowerShell as Admin
Expand Down
2 changes: 0 additions & 2 deletions docs/Adding a game.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@
- Required for Unreal games relying on unreal-shimloader.
- **TsUrl**
- The Thunderstore API endpoint for the listing.
- **ExclusionsUrl**
- The URL used to load package exclusions. Generally just kept the same. No real reason to change until it becomes a large file as extra overhead to maintain.
- **Platforms**
- Array of `StorePlatformMetadata` for the different supported storefronts. Identifier is not required, however is expected for Steam and EGS (more potentially in future).
- **GameImage**
Expand Down
145 changes: 75 additions & 70 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,76 +2,81 @@ const esModules = ['quasar/lang', 'lodash-es'].join('|');

/* eslint-env node */
module.exports = {
globals: {
__DEV__: true,
// TODO: Remove if resolved natively https://github.com/vuejs/vue-jest/issues/175
'vue-jest': {
pug: { doctype: 'html' },
globals: {
__DEV__: true,
// TODO: Remove if resolved natively https://github.com/vuejs/vue-jest/issues/175
'vue-jest': {
pug: { doctype: 'html' }
}
},
},
setupFilesAfterEnv: ['<rootDir>/test/jest/jest.setup.ts'],
// noStackTrace: true,
// bail: true,
// cache: false,
// verbose: true,
// watch: true,
collectCoverage: false,
coverageDirectory: '<rootDir>/test/jest/coverage',
collectCoverageFrom: [
'<rootDir>/src/**/*.vue',
'<rootDir>/src/**/*.js',
'<rootDir>/src/**/*.ts',
'<rootDir>/src/**/*.jsx',
'<rootDir>/src/**/*.tsx',
],
coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$'],
coverageThreshold: {
global: {
// branches: 50,
// functions: 50,
// lines: 50,
// statements: 50
testEnvironmentOptions: {
url: 'http://localhost/',
},
},
testMatch: [
// Matches tests in any subfolder of 'src' or into 'test/jest/__tests__'
// Matches all files with extension 'js', 'jsx', 'ts' and 'tsx'
'<rootDir>/test/jest/__tests__/**/*.(spec|test).+(ts|js)?(x)',
'<rootDir>/src/**/*.jest.(spec|test).+(ts|js)?(x)',
],
// Extension-less imports of components are resolved to .ts files by TS,
// grating correct type-checking in test files.
// Being 'vue' the first moduleFileExtension option, the very same imports
// will be resolved to .vue files by Jest, if both .vue and .ts files are
// in the same folder.
// This guarantee a great dev experience both for testing and type-checking.
// See https://github.com/vuejs/vue-jest/issues/188#issuecomment-620750728
moduleFileExtensions: ['vue', 'js', 'jsx', 'json', 'ts', 'tsx'],
moduleNameMapper: {
'^quasar$': 'quasar/dist/quasar.common.js',
'^~/(.*)$': '<rootDir>/$1',
'^src/(.*)$': '<rootDir>/src/$1',
'^app/(.*)$': '<rootDir>/$1',
'^components/(.*)$': '<rootDir>/src/components/$1',
'^layouts/(.*)$': '<rootDir>/src/layouts/$1',
'^pages/(.*)$': '<rootDir>/src/pages/$1',
'^assets/(.*)$': '<rootDir>/src/assets/$1',
'^boot/(.*)$': '<rootDir>/src/boot/$1',
'.*css$': '<rootDir>/test/jest/__tests__/__stub_module_files__/style.js',
},
transform: {
// See https://jestjs.io/docs/en/configuration.html#transformignorepatterns-array-string
[`^(${esModules}).+\\.js$`]: 'babel-jest',
'^.+\\.(ts|js|html)$': 'ts-jest',
'^.+\\.(ts|js)$': 'babel-jest',
// vue-jest uses find-babel-file, which searches by this order:
// (async) .babelrc, .babelrc.js, package.json, babel.config.js
// (sync) .babelrc, .babelrc.js, babel.config.js, package.json
// https://github.com/tleunen/find-babel-config/issues/33
'.*\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
'jest-transform-stub',
},
transformIgnorePatterns: [`node_modules/(?!(${esModules}))`],
snapshotSerializers: ['<rootDir>/node_modules/jest-serializer-vue'],
testEnvironment: 'jsdom',
testURL: 'http://localhost/',
setupFilesAfterEnv: ['<rootDir>/test/jest/jest.setup.ts'],
// noStackTrace: true,
// bail: true,
// cache: false,
// verbose: true,
// watch: true,
collectCoverage: false,
coverageDirectory: '<rootDir>/test/jest/coverage',
collectCoverageFrom: [
'<rootDir>/src/**/*.vue',
'<rootDir>/src/**/*.js',
'<rootDir>/src/**/*.ts',
'<rootDir>/src/**/*.jsx',
'<rootDir>/src/**/*.tsx'
],
coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$'],
coverageThreshold: {
global: {
// branches: 50,
// functions: 50,
// lines: 50,
// statements: 50
}
},
testMatch: [
// Matches tests in any subfolder of 'src' or into 'test/jest/__tests__'
// Matches all files with extension 'js', 'jsx', 'ts' and 'tsx'
'<rootDir>/test/jest/__tests__/**/*.(spec|test).+(ts|js)?(x)',
'<rootDir>/src/**/*.jest.(spec|test).+(ts|js)?(x)'
],
// Extension-less imports of components are resolved to .ts files by TS,
// grating correct type-checking in test files.
// Being 'vue' the first moduleFileExtension option, the very same imports
// will be resolved to .vue files by Jest, if both .vue and .ts files are
// in the same folder.
// This guarantee a great dev experience both for testing and type-checking.
// See https://github.com/vuejs/vue-jest/issues/188#issuecomment-620750728
moduleFileExtensions: ['vue', 'js', 'jsx', 'json', 'ts', 'tsx'],
moduleNameMapper: {
'^quasar$': 'quasar/dist/quasar.common.js',
'^~/(.*)$': '<rootDir>/$1',
'^src/(.*)$': '<rootDir>/src/$1',
'^app/(.*)$': '<rootDir>/$1',
'^components/(.*)$': '<rootDir>/src/components/$1',
'^layouts/(.*)$': '<rootDir>/src/layouts/$1',
'^pages/(.*)$': '<rootDir>/src/pages/$1',
'^assets/(.*)$': '<rootDir>/src/assets/$1',
'^boot/(.*)$': '<rootDir>/src/boot/$1',
'.*css$': '<rootDir>/test/jest/__tests__/__stub_module_files__/style.js'
},
transform: {
// See https://jestjs.io/docs/en/configuration.html#transformignorepatterns-array-string
[`^(${esModules}).+\\.js$`]: 'babel-jest',
'^.+\\.(ts|js|html)$': 'ts-jest',
'^.+\\.(ts|js)$': 'babel-jest',
// vue-jest uses find-babel-file, which searches by this order:
// (async) .babelrc, .babelrc.js, package.json, babel.config.js
// (sync) .babelrc, .babelrc.js, babel.config.js, package.json
// https://github.com/tleunen/find-babel-config/issues/33
'.*\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
'jest-transform-stub'
},
transformIgnorePatterns: [`node_modules/(?!(${esModules}))`],
snapshotSerializers: ['<rootDir>/node_modules/jest-serializer-vue']
};
9 changes: 6 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "r2modman",
"version": "3.1.55",
"version": "3.1.56",
"description": "A simple and easy to use mod manager for many games using Thunderstore.",
"productName": "r2modman",
"author": "ebkr",
Expand Down Expand Up @@ -74,6 +74,7 @@
"@types/async-lock": "^1.1.2",
"@types/chai": "^4.2.11",
"@types/fs-extra": "^8.0.1",
"@types/jsdom": "^21.1.7",
"@types/lodash.debounce": "^4.0.7",
"@types/node": "^12.12.12",
"@types/quill": "^2.0.3",
Expand All @@ -83,7 +84,7 @@
"@typescript-eslint/eslint-plugin": "^1.12.0",
"@typescript-eslint/parser": "^1.12.0",
"@vue/eslint-config-airbnb": "^4.0.0",
"@vue/test-utils": "^1.2.1",
"@vue/test-utils": "^1.3.6",
"babel-core": "^7.0.0-beta.3",
"babel-eslint": "^10.0.1",
"babel-jest": "^27.0.2",
Expand All @@ -100,13 +101,15 @@
"eslint-plugin-jest": "^24.1.0",
"eslint-plugin-vue": "^5.0.0",
"identity-obj-proxy": "^3.0.0",
"jest": "^27.5.1",
"jsdom": "^25.0.1",
"majestic": "^1.2.24",
"minimist": "^1.2.2",
"mocha": "^8.0.1",
"mock-require": "^3.0.3",
"sass": "^1.70.0",
"sass-loader": "^10.2.1",
"sinon": "^11.1.1",
"ts-jest": "^29.2.5",
"ts-node": "^8.10.2",
"typescript": "^4.5.5",
"vue": "2.7.16",
Expand Down
7 changes: 2 additions & 5 deletions src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@ import ProfileInstallerProvider from './providers/ror2/installing/ProfileInstall
import InstallationRules from './r2mm/installing/InstallationRules';
import InstallationRuleApplicator from './r2mm/installing/default_installation_rules/InstallationRuleApplicator';
import GenericProfileInstaller from './r2mm/installing/profile_installers/GenericProfileInstaller';
import ConnectionProviderImpl from './r2mm/connection/ConnectionProviderImpl';
import ConnectionProvider from './providers/generic/connection/ConnectionProvider';
import UtilityMixin from './components/mixins/UtilityMixin.vue';
import ErrorModal from './components/modals/ErrorModal.vue';

Expand All @@ -61,7 +59,7 @@ export default class App extends mixins(UtilityMixin) {
// Load settings using the default game before the actual game is selected.
const settings: ManagerSettings = await this.$store.dispatch('resetActiveGame');

this.hookThunderstoreModListRefresh();
this.hookBackgroundUpdateThunderstoreModList();
await this.checkCdnConnection();

InstallationRuleApplicator.apply();
Expand Down Expand Up @@ -102,11 +100,10 @@ export default class App extends mixins(UtilityMixin) {
});

this.$store.commit('updateModLoaderPackageNames');
this.$store.dispatch('tsMods/updateExclusions');
}

beforeCreate() {

ConnectionProvider.provide(() => new ConnectionProviderImpl());
FsProvider.provide(() => new NodeFs());

ProfileProvider.provide(() => new ProfileImpl());
Expand Down
2 changes: 1 addition & 1 deletion src/_managerinf/ManagerInformation.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import VersionNumber from '../model/VersionNumber';

export default class ManagerInformation {
public static VERSION: VersionNumber = new VersionNumber('3.1.55');
public static VERSION: VersionNumber = new VersionNumber('3.1.56');
public static IS_PORTABLE: boolean = false;
public static APP_NAME: string = "r2modman";
}
2 changes: 1 addition & 1 deletion src/assets/data/games.json
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@
"distributions": [
{
"platform": "steam",
"identifier": "2051980"
"identifier": "1660080"
}
],
"r2modman": {
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file added src/assets/images/game_selection/MiSide.webp
Binary file not shown.
Binary file added src/assets/images/game_selection/Subterror.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 0 additions & 31 deletions src/components/Hero.vue

This file was deleted.

56 changes: 56 additions & 0 deletions src/components/ModListUpdateBanner.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';

import R2Error from '../model/errors/R2Error';

@Component({})
export default class ModListUpdateBanner extends Vue {
get isModListLoaded(): boolean {
return this.$store.state.tsMods.modsLastUpdated !== undefined;
}

get isUpdateInProgress(): boolean {
return this.$store.state.tsMods.isThunderstoreModListUpdateInProgress;
}

get updateError(): Error|undefined {
return this.$store.state.tsMods.thunderstoreModListUpdateError;
}

async updateModList() {
await this.$store.dispatch('tsMods/syncPackageList');
}

openErrorModal() {
this.$store.commit('error/handleError', R2Error.fromThrownValue(
this.updateError,
'Error updating the mod list from Thunderstore',
));
}
}
</script>

<template>
<div v-if="!isModListLoaded" id="mod-list-update-banner" class="margin-bottom">
<div class="notification is-warning margin-right">
<span v-if="isUpdateInProgress">
{{ $store.state.tsMods.thunderstoreModListUpdateStatus }}
</span>
<span v-else-if="updateError">
Error updating the mod list.
<a @click="openErrorModal">View error details</a>.
<br />
The manager will keep trying to update the mod list in the background.
</span>
<span v-else>
An error occurred when updating the mod list from Thunderstore.
Would you like to
<a @click="updateModList">try again now</a>?
</span>
</div>
</div>
</template>

<style scoped lang="scss">

</style>
Loading
Loading