diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx
index 3bd74b786..d4e0061b1 100644
--- a/client/homebrew/pages/editPage/editPage.jsx
+++ b/client/homebrew/pages/editPage/editPage.jsx
@@ -46,8 +46,8 @@ const STYLEKEY = 'HB_newPage_style';
const SNIPKEY = 'HB_newPage_snippets';
const METAKEY = 'HB_newPage_meta';
-
const useLocalStorage = false;
+const neverSaved = false;
const EditPage = (props)=>{
props = {
@@ -309,14 +309,18 @@ const EditPage = (props)=>{
// #3 - Unsaved changes exist, click to save, show SAVE NOW
if(unsavedChanges)
- return trySave(true)} color='blue' icon='fas fa-save'>Save Now;
+ return trySave(true)} color='blue' icon='fas fa-save'>save now;
// #4 - No unsaved changes, autosave is ON, show AUTO-SAVED
if(autoSaveEnabled)
- return auto-saved.;
+ return auto-saved;
+
+ // #5 - No unsaved changes, and has never been saved, hide the button
+ if(neverSaved)
+ return save now;
// DEFAULT - No unsaved changes, show SAVED
- return saved.;
+ return saved;
};
const toggleAutoSave = ()=>{
diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx
index cfa6eb59d..fe57a9913 100644
--- a/client/homebrew/pages/homePage/homePage.jsx
+++ b/client/homebrew/pages/homePage/homePage.jsx
@@ -33,6 +33,7 @@ const SNIPKEY = 'homebrewery-new-snippets';
const METAKEY = 'homebrewery-new-meta';
const useLocalStorage = false;
+const neverSaved = true;
const HomePage =(props)=>{
props = {
@@ -122,6 +123,41 @@ const HomePage =(props)=>{
}
};
+ const renderSaveButton = ()=>{
+ // #1 - Currently saving, show SAVING
+ if(isSaving)
+ return saving...;
+
+ // #2 - Unsaved changes exist, autosave is OFF and warning timer has expired, show AUTOSAVE WARNING
+ // if(unsavedChanges && warnUnsavedChanges) {
+ // resetWarnUnsavedTimer();
+ // const elapsedTime = Math.round((new Date() - lastSavedTime) / 1000 / 60);
+ // const text = elapsedTime === 0
+ // ? 'Autosave is OFF.'
+ // : `Autosave is OFF, and you haven't saved for ${elapsedTime} minutes.`;
+
+ // return
+ // Reminder...
+ // {text}
+ // ;
+ // }
+
+ // #3 - Unsaved changes exist, click to save, show SAVE NOW
+ if(unsavedChanges)
+ return save now;
+
+ // #4 - No unsaved changes, autosave is ON, show AUTO-SAVED
+ if(autoSaveEnabled)
+ return auto-saved;
+
+ // #5 - No unsaved changes, and has never been saved, hide the button
+ if(neverSaved)
+ return save now;
+
+ // DEFAULT - No unsaved changes, show SAVED
+ return saved;
+ };
+
const clearError = ()=>{
setError(null);
setIsSaving(false);
@@ -130,10 +166,9 @@ const HomePage =(props)=>{
const renderNavbar = ()=>{
return
- {error ?
- :
- null
- }
+ {error
+ ?
+ : renderSaveButton()}
diff --git a/client/homebrew/pages/homePage/homePage.less b/client/homebrew/pages/homePage/homePage.less
index 4cf9ff4fe..c3ec1815c 100644
--- a/client/homebrew/pages/homePage/homePage.less
+++ b/client/homebrew/pages/homePage/homePage.less
@@ -34,7 +34,13 @@
}
.navItem.save {
+ .fadeInRight();
+ .transition(opacity);
background-color : @orange;
&:hover { background-color : @green; }
+ &.neverSaved {
+ .fadeOutRight();
+ opacity: 0;
+ }
}
}
diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx
index b9b628a2c..bc2b39c44 100644
--- a/client/homebrew/pages/newPage/newPage.jsx
+++ b/client/homebrew/pages/newPage/newPage.jsx
@@ -33,8 +33,8 @@ const METAKEY = 'HB_newPage_metadata';
const SNIPKEY = 'HB_newPage_snippets';
const SAVEKEYPREFIX = 'HB_editor_defaultSave_';
-
const useLocalStorage = true;
+const neverSaved = true;
const NewPage = (props) => {
props = {
@@ -96,6 +96,7 @@ const NewPage = (props) => {
const saveStorage = localStorage.getItem(SAVEKEY) || 'HOMEBREWERY';
setCurrentBrew(brew);
+ lastSavedBrew.current = brew;
setSaveGoogle(saveStorage == 'GOOGLE-DRIVE' && saveGoogle);
localStorage.setItem(BREWKEY, brew.text);
@@ -169,15 +170,38 @@ const NewPage = (props) => {
};
const renderSaveButton = ()=>{
- if(isSaving){
- return
- save...
- ;
- } else {
- return
- save
- ;
- }
+ // #1 - Currently saving, show SAVING
+ if(isSaving)
+ return saving...;
+
+ // #2 - Unsaved changes exist, autosave is OFF and warning timer has expired, show AUTOSAVE WARNING
+ // if(unsavedChanges && warnUnsavedChanges) {
+ // resetWarnUnsavedTimer();
+ // const elapsedTime = Math.round((new Date() - lastSavedTime) / 1000 / 60);
+ // const text = elapsedTime === 0
+ // ? 'Autosave is OFF.'
+ // : `Autosave is OFF, and you haven't saved for ${elapsedTime} minutes.`;
+
+ // return
+ // Reminder...
+ // {text}
+ // ;
+ // }
+
+ // #3 - Unsaved changes exist, click to save, show SAVE NOW
+ if(unsavedChanges)
+ return save now;
+
+ // #4 - No unsaved changes, autosave is ON, show AUTO-SAVED
+ if(autoSaveEnabled)
+ return auto-saved;
+
+ // #5 - No unsaved changes, and has never been saved, hide the button
+ if(neverSaved)
+ return save now;
+
+ // DEFAULT - No unsaved changes, show SAVED
+ return saved;
};
const clearError = ()=>{
diff --git a/client/homebrew/pages/newPage/newPage.less b/client/homebrew/pages/newPage/newPage.less
index ebc44d543..083e1ee09 100644
--- a/client/homebrew/pages/newPage/newPage.less
+++ b/client/homebrew/pages/newPage/newPage.less
@@ -1,6 +1,12 @@
.newPage {
.navItem.save {
+ .fadeInRight();
+ .transition(opacity);
background-color : @orange;
&:hover { background-color : @green; }
+ &.neverSaved {
+ .fadeOutRight();
+ opacity: 0;
+ }
}
}