Skip to content

Commit 48ae563

Browse files
committed
Put "(Unsaved)" in front of title if not saved
1 parent 6e810e6 commit 48ae563

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

src/frontend/components/App/index.jsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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)}>

src/frontend/components/Header/index.jsx

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,9 @@ class Header extends React.Component {
9797
.catch(this.props.showErrorToast);
9898
}
9999

100-
isGistSaved() {
101-
const { titles, files, lastTitles, lastFiles } = this.props.current;
102-
const serializeTitles = titles => JSON.stringify(titles);
103-
const serializeFiles = files => JSON.stringify(files.map(({ name, content }) => ({ name, content })));
104-
return serializeTitles(titles) === serializeTitles(lastTitles) &&
105-
serializeFiles(files) === serializeFiles(lastFiles);
106-
}
107-
108100
render() {
109101
const { interval, paused, started } = this.state;
110-
const { className, onClickTitleBar, navigatorOpened, onAction } = this.props;
102+
const { className, onClickTitleBar, navigatorOpened, onAction, gistSaved } = this.props;
111103
const { gistId, titles } = this.props.current;
112104
const { ext, user } = this.props.env;
113105

@@ -131,7 +123,7 @@ class Header extends React.Component {
131123
</Button>
132124
</div>
133125
<div className={styles.section}>
134-
<Button icon={faSave} primary disabled={!gistId || this.isGistSaved()}
126+
<Button icon={faSave} primary disabled={!gistId || gistSaved}
135127
onClick={() => this.saveGist()}>Save</Button>
136128
<Button icon={faTrashAlt} primary disabled={!gistId} onClick={() => this.deleteGist()}
137129
confirmNeeded>Delete</Button>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy