@@ -210,10 +210,20 @@ class App extends React.Component {
210210 this . setState ( { navigatorOpened } ) ;
211211 }
212212
213+ isGistSaved ( ) {
214+ const { titles, files, lastTitles, lastFiles } = this . props . current ;
215+ const serializeTitles = titles => JSON . stringify ( titles ) ;
216+ const serializeFiles = files => JSON . stringify ( files . map ( ( { name, content } ) => ( { name, content } ) ) ) ;
217+ return serializeTitles ( titles ) === serializeTitles ( lastTitles ) &&
218+ serializeFiles ( files ) === serializeFiles ( lastFiles ) ;
219+ }
220+
213221 render ( ) {
214222 const { navigatorOpened, workspaceWeights, viewerTabIndex, editorTabIndex } = this . state ;
215223 const { titles, files } = this . props . current ;
216224
225+ const gistSaved = this . isGistSaved ( ) ;
226+
217227 const readmeFile = files . find ( file => file . name === 'README.md' ) || {
218228 name : 'README.md' ,
219229 content : `# ${ titles [ 1 ] } \nREADME.md not found` ,
@@ -236,13 +246,13 @@ class App extends React.Component {
236246 return (
237247 < div className = { styles . app } >
238248 < Helmet >
239- < title > { titles . join ( ' - ' ) } </ title >
249+ < title > { gistSaved ? '' : '(Unsaved) ' } { titles . join ( ' - ' ) } </ title >
240250 < meta name = "description" content = { description } />
241251 </ Helmet >
242252 < Header className = { styles . header } onClickTitleBar = { ( ) => this . toggleNavigatorOpened ( ) }
243253 navigatorOpened = { navigatorOpened } loadScratchPapers = { ( ) => this . loadScratchPapers ( ) }
244254 loadAlgorithm = { params => this . loadAlgorithm ( params ) }
245- onAction = { ( ) => this . handleChangeViewerTabIndex ( 1 ) } />
255+ onAction = { ( ) => this . handleChangeViewerTabIndex ( 1 ) } gistSaved = { gistSaved } />
246256 < ResizableContainer className = { styles . workspace } horizontal weights = { workspaceWeights }
247257 visibles = { [ navigatorOpened , true , true ] }
248258 onChangeWeights = { weights => this . handleChangeWorkspaceWeights ( weights ) } >
0 commit comments