this repo has no description
1import spacepack from "@moonlight-mod/wp/spacepack_spacepack"; 2import { MoonbaseSettingsStore } from "@moonlight-mod/wp/moonbase_stores"; 3import Notices from "@moonlight-mod/wp/notices_notices"; 4import { MoonlightBranch } from "@moonlight-mod/types"; 5import React from "@moonlight-mod/wp/react"; 6import { ThemeDarkIcon } from "@moonlight-mod/wp/discord/components/common/index"; 7 8function plural(str: string, num: number) { 9 return `${str}${num > 1 ? "s" : ""}`; 10} 11 12function listener() { 13 if ( 14 MoonbaseSettingsStore.shouldShowNotice && 15 MoonbaseSettingsStore.getExtensionConfigRaw("moonbase", "updateBanner", true) 16 ) { 17 MoonbaseSettingsStore.removeChangeListener(listener); 18 19 const version = MoonbaseSettingsStore.newVersion; 20 const extensionUpdateCount = Object.keys(MoonbaseSettingsStore.updates).length; 21 const hasExtensionUpdates = extensionUpdateCount > 0; 22 23 let message; 24 25 if (version != null) { 26 message = 27 moonlightNode.branch === MoonlightBranch.NIGHTLY 28 ? `A new version of moonlight is available` 29 : `moonlight ${version} is available`; 30 } 31 32 if (hasExtensionUpdates) { 33 let concat = false; 34 if (message == null) { 35 message = ""; 36 } else { 37 concat = true; 38 message += ", and "; 39 } 40 message += `${extensionUpdateCount} ${concat ? "" : "moonlight "}${plural( 41 "extension", 42 extensionUpdateCount 43 )} can be updated`; 44 } 45 46 if (message != null) message += "."; 47 48 Notices.addNotice({ 49 element: ( 50 <div className="moonbase-updates-notice_text-wrapper"> 51 <ThemeDarkIcon size="sm" color="currentColor" /> 52 {message} 53 </div> 54 ), 55 color: "moonbase-updates-notice", 56 buttons: [ 57 { 58 name: "Open Moonbase", 59 onClick: () => { 60 const { open } = spacepack.require("discord/actions/UserSettingsModalActionCreators").default; 61 if (MoonbaseSettingsStore.getExtensionConfigRaw<boolean>("moonbase", "sections", false)) { 62 open("moonbase-extensions"); 63 } else { 64 open("moonbase", "0"); 65 } 66 return true; 67 } 68 } 69 ] 70 }); 71 } 72} 73 74MoonbaseSettingsStore.addChangeListener(listener);