From cae6f12ea0738f797c7263509d2a2c12dbdc0bf1 Mon Sep 17 00:00:00 2001 From: Geometrically <18202329+Geometrically@users.noreply.github.com> Date: Sun, 22 Dec 2024 20:03:58 -0700 Subject: [PATCH] More app fixes 0.9.0 (#3054) * initial set of fixes (toggle sidebar, profile pagination) * more fixes, bump version * fix lint: * fix quick switcher ordering --- Cargo.lock | 4 +- apps/app-frontend/package.json | 2 +- apps/app-frontend/src/App.vue | 300 ++---- .../src/components/GridDisplay.vue | 16 +- .../src/components/RowDisplay.vue | 7 +- .../src/components/ui/Instance.vue | 17 +- .../src/components/ui/NavButton.vue | 91 +- .../src/components/ui/PromotionWrapper.vue | 2 +- .../components/ui/QuickInstanceSwitcher.vue | 13 +- .../src/components/ui/RunningAppBar.vue | 5 - .../src/components/ui/SearchCard.vue | 2 +- .../ui/instance_settings/GeneralSettings.vue | 1 + .../InstallationSettings.vue | 3 + .../components/ui/modal/AppSettingsModal.vue | 39 +- .../ui/modal/ConfirmModalWrapper.vue | 10 +- .../ui/settings/AppearanceSettings.vue | 27 +- .../ui/settings/FeatureFlagSettings.vue | 34 +- .../settings/ResourceManagementSettings.vue | 1 + apps/app-frontend/src/pages/Browse.vue | 17 +- apps/app-frontend/src/pages/instance/Mods.vue | 155 ++- .../src/pages/instance/Options.vue | 973 ------------------ apps/app-frontend/src/pages/instance/index.js | 3 +- apps/app-frontend/src/pages/library/Index.vue | 2 +- apps/app-frontend/src/pages/project/Index.vue | 5 +- apps/app-frontend/src/routes.js | 9 - apps/app-frontend/src/store/theme.js | 19 +- apps/app/Cargo.toml | 3 +- apps/app/src/api/ads.rs | 18 +- apps/app/src/macos/window_ext.rs | 2 +- apps/app/src/main.rs | 32 +- apps/app/tauri.conf.json | 2 +- .../frontend/src/pages/dashboard/projects.vue | 2 +- .../src/pages/search/[searchProjectType].vue | 1 - ...cd3910b1719f433a0c34d40415dd7681ab272.json | 6 +- ...2dfc577061b92479ce96ffb30a457939b5ffe.json | 7 +- ...7b54a186b98796ec549c9d891089ea33cf3fc.json | 7 +- ...e36adca581f8ad1b90f85d3ec3d92ec61e65e.json | 8 +- ...21065f5e35f321954a9d5ae9cde907d5ce823.json | 7 +- ...cdcf73da199ea6ac05ee3ee798ece80d877cf.json | 13 +- ...b8cea926ac6c65d613904eff1d740df30acda.json | 9 +- ...f15732d84bcebb9ca15225dbabdc0f46ba2d.json} | 6 +- ...131168e87bb37aa65c2156ad2cb6198426d8c.json | 9 +- ...9758c5ca82db396268bca5087bac88f733d9.json} | 16 +- packages/app-lib/Cargo.toml | 2 +- .../20241222013857_feature-flags.sql | 2 + packages/app-lib/src/state/cache.rs | 6 +- packages/app-lib/src/state/mod.rs | 4 + packages/app-lib/src/state/profiles.rs | 9 +- packages/app-lib/src/state/settings.rs | 35 +- .../ui/src/components/base/PopoutMenu.vue | 1 + .../components/content/ContentListPanel.vue | 34 +- .../src/components/project/ProjectHeader.vue | 5 +- 52 files changed, 502 insertions(+), 1501 deletions(-) delete mode 100644 apps/app-frontend/src/pages/instance/Options.vue rename packages/app-lib/.sqlx/{query-26e3ed8680f6c492b03b458aabfb3f94fddc753b343ef705263188945d0e578d.json => query-759e4ffe30ebc4f8602256cb419ef15732d84bcebb9ca15225dbabdc0f46ba2d.json} (82%) rename packages/app-lib/.sqlx/{query-8e19c9cdb0aaa48509724e82f6e8f212c9cd2112fdba77cfeee206025af47761.json => query-d90a2f2f823fc546661a94af07249758c5ca82db396268bca5087bac88f733d9.json} (88%) create mode 100644 packages/app-lib/migrations/20241222013857_feature-flags.sql diff --git a/Cargo.lock b/Cargo.lock index a6c704308..740f7f675 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8956,7 +8956,7 @@ dependencies = [ [[package]] name = "theseus" -version = "0.9.0-1" +version = "0.9.0-2" dependencies = [ "async-recursion", "async-tungstenite", @@ -9007,7 +9007,7 @@ dependencies = [ [[package]] name = "theseus_gui" -version = "0.9.0-1" +version = "0.9.0-2" dependencies = [ "chrono", "cocoa 0.25.0", diff --git a/apps/app-frontend/package.json b/apps/app-frontend/package.json index 3f7fe8ed2..ae3969723 100644 --- a/apps/app-frontend/package.json +++ b/apps/app-frontend/package.json @@ -1,7 +1,7 @@ { "name": "@modrinth/app-frontend", "private": true, - "version": "0.9.0-1", + "version": "0.9.0-2", "type": "module", "scripts": { "dev": "vite", diff --git a/apps/app-frontend/src/App.vue b/apps/app-frontend/src/App.vue index 8e79597d8..727d86a28 100644 --- a/apps/app-frontend/src/App.vue +++ b/apps/app-frontend/src/App.vue @@ -15,6 +15,7 @@ import { MaximizeIcon, RestoreIcon, LogOutIcon, + RightArrowIcon, } from '@modrinth/assets' import { Avatar, Button, ButtonStyled, Notifications, OverflowMenu } from '@modrinth/ui' import { useLoading, useTheming } from '@/store/state' @@ -54,40 +55,14 @@ import { get_user } from '@/helpers/cache.js' import AppSettingsModal from '@/components/ui/modal/AppSettingsModal.vue' import dayjs from 'dayjs' import PromotionWrapper from '@/components/ui/PromotionWrapper.vue' -import { hide_ads_window, show_ads_window } from '@/helpers/ads.js' +import { hide_ads_window, init_ads_window } from '@/helpers/ads.js' import FriendsList from '@/components/ui/friends/FriendsList.vue' import { openUrl } from '@tauri-apps/plugin-opener' import QuickInstanceSwitcher from '@/components/ui/QuickInstanceSwitcher.vue' const themeStore = useTheming() -const news = ref([ - { - title: 'Introducing Modrinth Servers', - summary: 'Host your next Minecraft server with Modrinth.', - thumbnail: - 'https://media.beehiiv.com/cdn-cgi/image/format=auto,width=800,height=421,fit=scale-down,onerror=redirect/uploads/asset/file/eefddc59-b4c4-4e7d-92e8-c26bdef42984/Modrinth-Servers-Thumb.png', - date: '2024-11-02T00:00:00Z', - link: 'https://blog.modrinth.com/p/modrinth-servers-beta', - }, - { - title: 'Becoming Sustainable', - summary: 'Announcing 5x creator revenue and updates to the monetization program.', - thumbnail: - 'https://media.beehiiv.com/cdn-cgi/image/format=auto,width=800,height=421,fit=scale-down,onerror=redirect/uploads/asset/file/c99b9885-8248-4d7a-b19a-3ae2c902fdd5/revenue.png', - date: '2024-09-13T00:00:00Z', - link: 'https://blog.modrinth.com/p/creator-revenue-update', - }, - { - title: 'Modrinth+ and New Ads', - summary: - 'Introducing a new advertising system, a subscription to remove ads, and a redesign of the website!\n', - thumbnail: - 'https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/38ce85e4-5d93-43eb-b61b-b6296f6b9e66/things.png?t=1724260059', - date: '2024-08-21T00:00:00Z', - link: 'https://blog.modrinth.com/p/introducing-modrinth-refreshed-site-look-new-advertising-system', - }, -]) +const news = ref([]) const urlModal = ref(null) @@ -132,6 +107,9 @@ async function setupApp() { advanced_rendering, onboarded, default_page, + toggle_sidebar, + developer_mode, + feature_flags, } = await get() if (default_page === 'Library') { @@ -149,6 +127,9 @@ async function setupApp() { themeStore.setThemeState(theme) themeStore.collapsedNavigation = collapsed_navigation themeStore.advancedRendering = advanced_rendering + themeStore.toggleSidebar = toggle_sidebar + themeStore.devMode = developer_mode + themeStore.featureFlags = feature_flags isMaximized.value = await getCurrentWindow().isMaximized() @@ -190,6 +171,12 @@ async function setupApp() { } }) + useFetch(`https://modrinth.com/blog/news.json`, 'news', true).then((res) => { + if (res && res.articles) { + news.value = res.articles + } + }) + get_opening_command().then(handleCommand) checkUpdates() fetchCredentials() @@ -263,13 +250,29 @@ const hasPlus = computed( (credentials.value.user.badges & MIDAS_BITFLAG) === MIDAS_BITFLAG, ) +const sidebarToggled = ref(true) + +themeStore.$subscribe(() => { + sidebarToggled.value = !themeStore.toggleSidebar +}) + +const forceSidebar = ref(false) +const sidebarVisible = computed(() => sidebarToggled.value || forceSidebar.value) +const showAd = computed(() => !(!sidebarVisible.value || hasPlus.value)) + +router.afterEach((to) => { + forceSidebar.value = to.path.startsWith('/browse') || to.path.startsWith('/project') +}) + watch( - hasPlus, + showAd, () => { - if (hasPlus.value) { + if (!showAd.value) { hide_ads_window(true) } else { - show_ads_window() + setTimeout(() => { + init_ads_window(true) + }, 400) } }, { immediate: true }, @@ -367,21 +370,21 @@ function handleAuxClick(e) {
- + - - -
- + -
- + - - + - Sign out - +
-
+
-
+
+ + +
@@ -465,7 +481,11 @@ function handleAuxClick(e) {
-
+
{{ route.fullPath }} @@ -507,7 +527,7 @@ function handleAuxClick(e) { :class="{ 'pb-12': !hasPlus }" > -