From 32fd7e37d0a2e72a88bac3462fbfac3a5d4b6015 Mon Sep 17 00:00:00 2001 From: Rémy Raes Date: Wed, 9 Nov 2022 23:42:54 +0100 Subject: feat: Patch notes (#18) * 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 --- src-vue/src/plugins/store.ts | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src-vue/src/plugins') diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index c731b98d..31b1efec 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -11,6 +11,7 @@ import { appDir } from '@tauri-apps/api/path'; import { open } from '@tauri-apps/api/dialog'; import { Store } from 'tauri-plugin-store-api'; import {router} from "../main"; +import ReleaseInfo from "../utils/ReleaseInfo"; const persistentStore = new Store('flight-core-settings.json'); @@ -25,6 +26,7 @@ export interface FlightCoreStore { installed_northstar_version: string, northstar_state: NorthstarState, northstar_release_canal: ReleaseCanal, + releaseNotes: ReleaseInfo[], northstar_is_running: boolean, origin_is_running: boolean @@ -44,6 +46,7 @@ export const store = createStore({ installed_northstar_version: "", northstar_state: NorthstarState.GAME_NOT_FOUND, northstar_release_canal: ReleaseCanal.RELEASE, + releaseNotes: [], northstar_is_running: false, origin_is_running: false @@ -181,6 +184,10 @@ export const store = createStore({ store.commit('updateGamePath'); break; } + }, + async fetchReleaseNotes(state: FlightCoreStore) { + if (state.releaseNotes.length !== 0) return; + state.releaseNotes = await invoke("get_northstar_release_notes"); } } }); -- cgit v1.2.3