@@ -40,11 +40,21 @@ import ToastStore from "matrix-react-sdk/src/stores/ToastStore";
4040import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/GenericExpiringToast" ;
4141import { logger } from "matrix-js-sdk/src/logger" ;
4242import { MatrixEvent } from "matrix-js-sdk/src/models/event" ;
43+ import { BreadcrumbsStore } from "matrix-react-sdk/src/stores/BreadcrumbsStore" ;
44+ import { UPDATE_EVENT } from "matrix-react-sdk/src/stores/AsyncStore" ;
45+ import { avatarUrlForRoom , getInitialLetter } from "matrix-react-sdk/src/Avatar" ;
4346
4447import VectorBasePlatform from "./VectorBasePlatform" ;
4548import { SeshatIndexManager } from "./SeshatIndexManager" ;
4649import { IPCManager } from "./IPCManager" ;
4750
51+ interface SquirrelUpdate {
52+ releaseNotes : string ;
53+ releaseName : string ;
54+ releaseDate : Date ;
55+ updateURL : string ;
56+ }
57+
4858const isMac = navigator . platform . toUpperCase ( ) . includes ( "MAC" ) ;
4959
5060function platformFriendlyName ( ) : string {
@@ -150,13 +160,29 @@ export default class ElectronPlatform extends VectorBasePlatform {
150160 } ) ;
151161
152162 this . ipc . call ( "startSSOFlow" , this . ssoID ) ;
163+
164+ BreadcrumbsStore . instance . on ( UPDATE_EVENT , this . onBreadcrumbsUpdate ) ;
153165 }
154166
155167 public async getConfig ( ) : Promise < IConfigOptions > {
156168 return this . ipc . call ( "getConfig" ) ;
157169 }
158170
159- private onUpdateDownloaded = async ( ev , { releaseNotes, releaseName } ) : Promise < void > => {
171+ private onBreadcrumbsUpdate = ( ) : void => {
172+ const rooms = BreadcrumbsStore . instance . rooms . slice ( 0 , 7 ) . map ( ( r ) => ( {
173+ roomId : r . roomId ,
174+ avatarUrl : avatarUrlForRoom (
175+ r ,
176+ Math . floor ( 60 * window . devicePixelRatio ) ,
177+ Math . floor ( 60 * window . devicePixelRatio ) ,
178+ "crop" ,
179+ ) ,
180+ initial : getInitialLetter ( r . name ) ,
181+ } ) ) ;
182+ this . ipc . call ( "breadcrumbs" , rooms ) ;
183+ } ;
184+
185+ private onUpdateDownloaded = async ( ev : Event , { releaseNotes, releaseName } : SquirrelUpdate ) : Promise < void > => {
160186 dis . dispatch < CheckUpdatesPayload > ( {
161187 action : Action . CheckUpdates ,
162188 status : UpdateCheckStatus . Ready ,
0 commit comments