summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/visual_review_toolbar/components/comment_storage.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/visual_review_toolbar/components/comment_storage.js')
-rw-r--r--app/assets/javascripts/visual_review_toolbar/components/comment_storage.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/assets/javascripts/visual_review_toolbar/components/comment_storage.js b/app/assets/javascripts/visual_review_toolbar/components/comment_storage.js
new file mode 100644
index 00000000000..49c9400437e
--- /dev/null
+++ b/app/assets/javascripts/visual_review_toolbar/components/comment_storage.js
@@ -0,0 +1,20 @@
+import { selectCommentBox } from './utils';
+import { sessionStorage, STORAGE_COMMENT } from '../shared';
+
+const getSavedComment = () => sessionStorage.getItem(STORAGE_COMMENT) || '';
+
+const saveComment = () => {
+ const currentComment = selectCommentBox();
+
+ // This may be added to any view via top-level beforeunload listener
+ // so let's skip if it does not apply
+ if (currentComment && currentComment.value) {
+ sessionStorage.setItem(STORAGE_COMMENT, currentComment.value);
+ }
+};
+
+const clearSavedComment = () => {
+ sessionStorage.removeItem(STORAGE_COMMENT);
+};
+
+export { getSavedComment, saveComment, clearSavedComment };