Pavel Djundik
a1f183f216
Cleanup auth flow
2019-11-25 20:12:58 +02:00
Pavel Djundik
fc1c9568e2
Rename helpers folder, move some vue filters
2019-11-25 20:12:58 +02:00
Pavel Djundik
b164e95290
Remove DOM access from webpush
2019-11-25 20:12:57 +02:00
Pavel Djundik
8972242863
Remove jquery from msg event
2019-11-25 20:12:57 +02:00
Pavel Djundik
6b8fea8afc
Avoid emitting multiple events to the server when collapsing/expanding channel previews
...
Fixes #1377
2019-11-25 20:12:56 +02:00
Pavel Djundik
c26de4cf6a
Move options to vuex
...
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-11-25 20:12:56 +02:00
Pavel Djundik
743ae987ec
Fix up login and initial window
2019-11-25 20:12:55 +02:00
Pavel Djundik
2b5a13a043
Register routes after init
2019-11-25 20:12:55 +02:00
Pavel Djundik
aba2487126
Make findChannel and findNetwork getters
2019-11-25 20:12:54 +02:00
Pavel Djundik
742cd8d4bf
Move most things out of utils
2019-11-25 20:12:54 +02:00
Pavel Djundik
2f635069e0
Move vuex state to a separate file and reorganize some code
...
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-11-25 20:12:54 +02:00
Pavel Djundik
3c43a2bfd3
Delete renderPreview.js
2019-11-25 20:12:53 +02:00
Pavel Djundik
c8b22b2df3
Fix up network editing
2019-11-25 20:12:52 +02:00
Richard Lewis
8fa42c5c48
Fix network editing in vue and use absolute urls in router links.
2019-11-25 20:12:52 +02:00
Richard Lewis
2049a16d64
Implement switchToChannel method.
2019-11-25 20:12:51 +02:00
Pavel Djundik
e845e17a63
Convert some clicks to router push
2019-11-25 20:12:51 +02:00
Richard Lewis
c393dd1a11
Fixes to vue routing and activeWindow.
2019-11-25 20:12:50 +02:00
Pavel Djundik
f76ad57c63
Move confirmExit
2019-11-25 20:12:50 +02:00
Richard Lewis
737afc759b
Implement vue-router.
2019-11-25 20:12:48 +02:00
Pavel Djundik
7355c91839
Move context menu events to factory
2019-11-25 20:12:48 +02:00
Pavel Djundik
af0d48de72
Create InlineChannel component
2019-11-25 20:12:48 +02:00
Pavel Djundik
af777106bf
Remove handlebars and html-minifier
2019-11-25 20:12:46 +02:00
Richard Lewis
2d8417cd8b
Patch changelog html in Vue.
2019-11-25 20:12:33 +02:00
Richard Lewis
ef500f12a1
Implement changelog in Vue.
2019-11-25 20:12:32 +02:00
Richard Lewis
b95f89c4c2
Implement version checker in Vue.
2019-11-25 20:12:31 +02:00
Richard Lewis
2b602ca333
Move slideout menu logic to Vue.
2019-11-25 20:12:31 +02:00
Richard Lewis
ee92de0ff7
Fix changing theme color and properly sync settings.
2019-11-25 20:12:30 +02:00
Richard Lewis
b5f2e7f0cc
Fix lint and format with prettier.
2019-11-25 20:12:30 +02:00
Richard Lewis
e0ec340de8
Fix oversights during rebase.
2019-11-25 20:12:29 +02:00
Richard Lewis
b994ecd1f1
Fix hash navigation for sidebar footer buttons.
2019-11-25 20:12:29 +02:00
Richard Lewis
addd4124bf
Close sidebar when opening settings, help etc.
2019-11-25 20:12:29 +02:00
Richard Lewis
7fd48d8155
Fix enabling and disabling push notifications.
2019-11-25 20:12:28 +02:00
Richard Lewis
467ebab31f
Move most side bar and user list interactions to vue.
2019-11-25 20:12:28 +02:00
Richard Lewis
e73bf1e9a7
Move closeChan functionality to vue.
2019-11-25 20:12:27 +02:00
Richard Lewis
5b17a2fbe4
Port session list to vue.
2019-11-25 20:12:27 +02:00
Richard Lewis
111beb5f12
Run updateSetting from Settings component and get rid of unused code.
2019-11-25 20:12:26 +02:00
Richard Lewis
6c10a2a6cf
Port part of the settings functionality to vue.
2019-11-25 20:12:26 +02:00
Richard Lewis
5a3ad194e8
Move connect and network edit views to vue.
2019-11-25 20:12:25 +02:00
Richard Lewis
c4a3108dc0
Move activeWindow to vuex.
2019-11-25 20:12:24 +02:00
Richard Lewis
0da059118d
Move isNotified to vuex.
2019-11-25 20:12:24 +02:00
Richard Lewis
69cb891b1a
Add vuex and move isConnected to vuex state.
2019-11-25 20:12:23 +02:00
Pavel Djundik
3f7889e534
Move changelog window to Vue
2019-11-25 20:12:22 +02:00
Pavel Djundik
71f54f6a5d
Move some settings to Vue
2019-11-25 20:12:22 +02:00
Pavel Djundik
09e12affe8
Begin moving windows to Vue
2019-11-25 20:12:21 +02:00
Pavel Djundik
74fd296d61
Merge pull request #3490 from thelounge/xpaw/showinactive-fix
...
Fix potential issue of history not loading when `showInActive` is the first message
2019-11-11 12:01:41 +02:00
Pavel Djundik
a13bcb8e93
Format prettier after update
2019-11-09 10:55:50 +02:00
Raqbit
95cc9a47fb
Add file size to link preview
2019-11-07 16:58:28 +01:00
Pavel Djundik
3ed54a3e11
Remove away/back condense as it won't be in channels
2019-11-05 12:37:55 +02:00
Pavel Djundik
75eb812f05
Fix potential issue of history not loading when showInActive is set
2019-11-01 16:43:55 +02:00
Pavel Djundik
1f2ca91d89
Merge pull request #3486 from thelounge/xpaw/firefox-copy-hack
...
Disable copy hack in Firefox
2019-11-01 13:15:23 +02:00
Pavel Djundik
97cfd1a2bc
Disable copy hack in Firefox
2019-10-31 16:49:09 +02:00
Jay2k1
c89aea3c1e
add bidi support to messages, actions, previews etc
2019-10-24 16:53:29 +02:00
Pavel Djundik
63c638e9ad
Fix uploader being initialized more than once
2019-10-21 18:57:01 +03:00
Pavel Djundik
d4198e4360
Merge pull request #3461 from thelounge/xpaw/reconnect-unread
...
Synchronize open channel on client on reconnection
2019-10-21 17:59:34 +03:00
Pavel Djundik
00e59000fd
Merge pull request #3460 from thelounge/xpaw/history-reconnect
...
Fix history not loading in certain cases after reconnect
2019-10-21 11:01:41 +03:00
Pavel Djundik
1ca16816c2
Synchronize open channel on client on reconnection
2019-10-17 13:54:30 +03:00
Pavel Djundik
ebfecc3e9d
Fix client not loading messages after reconnect in channels with less than 100 total messages
2019-10-17 13:27:15 +03:00
Pavel Djundik
7687c90edc
Synchronize user list correctly on reconnection
2019-10-15 20:33:03 +03:00
Jordan Day
493f9b1b6c
Prefix channel before join
2019-10-05 14:12:22 -05:00
Jordan Day
037fa6d114
Allow tab completion in middle of input
2019-10-04 10:34:07 -05:00
Pavel Djundik
554c602230
Do not request upload token if there's an upload in process
2019-08-25 20:23:32 +03:00
Pavel Djundik
04e1e004da
Reset upload input so the same file can be selected again
2019-08-25 20:14:46 +03:00
ollipa
e69e448396
add save button to edit topic input field
2019-08-11 17:34:01 +03:00
ollipa
49652fc40a
make channel topic editable from user interface
2019-08-11 15:29:08 +03:00
Paul Lettington
c6b19d5144
Add keybind for cycling to the next unread window
2019-08-09 15:16:44 +01:00
Pavel Djundik
96efaed07a
Open list channel on data updates
2019-08-04 14:03:04 +03:00
Pavel Djundik
72bebd8681
Merge pull request #3326 from thelounge/xpaw/theme-color
...
Allow themes to change theme-color
2019-08-03 22:28:20 +03:00
Pavel Djundik
85025a6840
Merge pull request #3329 from thelounge/xpaw/sw-error
...
Send service worker fetch errors to client
2019-08-03 22:27:53 +03:00
Pavel Djundik
932d9c809b
Handle upload token requesting in a better way
2019-07-29 11:04:33 +03:00
Pavel Djundik
5041e82980
Send service worker fetch errors to client
2019-07-23 15:31:26 +03:00
Pavel Djundik
efa0aeb2c6
Allow themes to change theme-color
2019-07-22 19:50:04 +03:00
Alistair McKinlay
20816d509d
Add check for outdated packages, and show on the help screen.
2019-07-19 13:33:09 +01:00
Alistair McKinlay
cc7b4e4817
Fix prettier breaking eslint-disable for confirm
2019-07-19 11:27:40 +01:00
Alistair McKinlay
133e7bf710
Format js/vue with prettier
2019-07-19 11:27:40 +01:00
Pavel Djundik
2b1197880d
Merge network/channel objects when reconnecting
2019-07-17 12:07:49 +03:00
Pavel Djundik
bf2c6a6bcf
Fix channel sorting to work across clients on Vue
2019-07-12 19:47:29 +03:00
Alistair McKinlay
4cbe72f635
Add support for command plugins
2019-07-02 17:02:05 +01:00
Pavel Djundik
1425130436
Update eslint and eslint-plugin-vue, fix rules
2019-06-25 11:51:47 +03:00
Pavel Djundik
7886e831bb
Fix file uploading when lounge is proxied in a subfolder
2019-06-14 00:58:19 +03:00
Pavel Djundik
b95c8236bd
Use @github's emoji data
2019-06-10 22:17:00 +03:00
Pavel Djundik
702aa6fdfa
Change upload abort error message
2019-05-24 16:43:27 +03:00
SwayUser
4555cf7dcf
Add paste file functionality
2019-05-20 10:34:56 +02:00
Pavel Djundik
830fdda91a
Implement invite list
2019-04-15 14:38:11 +03:00
Pavel Djundik
12cf5ed070
Abort file upload if ChatInput component is destroyed
2019-03-18 10:28:18 +02:00
Pavel Djundik
f84e4199e9
Re-implement file uploads with old-school forms
...
Co-Authored-By: Richard Lewis <richrd@users.noreply.github.com>
2019-03-18 10:28:18 +02:00
Jérémie Astori
4faf7bfd3c
Remove network name from window title
...
It can be redundant on network tab.
2019-02-18 00:35:04 -05:00
Pavel Djundik
c8568b5429
Redirect pageup/pagedown without manually animating the scroll
2019-02-13 16:44:15 +02:00
Pavel Djundik
3f3a22aa1e
Disable clicking on the currently active channel
...
channel.id does not change, which causes some wonky behaviour when the channel gets trimmed
2019-02-13 16:44:15 +02:00
Pavel Djundik
199df6b729
Fix hasRoleInChannel
2019-02-13 16:44:15 +02:00
Pavel Djundik
f3cf69796d
Don't merge messages on client if server sends over 100 of them
2019-02-13 16:44:15 +02:00
Pavel Djundik
b066dc301e
Move custom highlights to the server
2019-02-13 16:44:15 +02:00
Pavel Djundik
b02c3b6c17
Fix channel names in context menus
2019-02-13 16:44:15 +02:00
Pavel Djundik
987cc6d3b4
Restore custom highlights functionality
2019-02-12 12:49:06 +02:00
Pavel Djundik
c13840e029
Don't sync counters for showInActive messages
2019-02-12 12:49:06 +02:00
Pavel Djundik
42717e3dec
Enable preserveWhitespace: false
, add spaces where needed, fix whitespace when copying text
2019-02-12 12:49:06 +02:00
Pavel Djundik
5f0f745d10
Only send /join for current channel if there are no arguments
2019-02-12 12:49:06 +02:00
Pavel Djundik
7ba14fe4e3
Explicitly place * on actions in DOM
2019-02-12 12:49:06 +02:00
Pavel Djundik
99cda335ab
Fix next/prev buttons in media viewer
2019-02-12 12:49:06 +02:00
Pavel Djundik
05303e4cf1
Fix link expand buttons not showing if auto-expand option is off
2019-02-12 12:49:05 +02:00
Pavel Djundik
4a0f319e91
Ignore server unread sync for active channel
2019-02-12 12:49:05 +02:00
Pavel Djundik
5ba0e33fb9
Skip network status updates for quit networks
2019-02-12 12:49:05 +02:00
Pavel Djundik
446ad6a5f4
Allow Vue devtools in production
2019-02-12 12:49:05 +02:00
Pavel Djundik
395be41728
Move message time formatting to Vue as computed
2019-02-12 12:49:05 +02:00
Richard Lewis
cc895e67ee
Move date formatting to DateMarker and stop listening to daychange when no longer necessary.
2019-02-12 12:49:05 +02:00
Richard Lewis
7394e6b9f1
Update date markers vith vue instead of jQuery.
2019-02-12 12:49:05 +02:00
Pavel Djundik
7b15c53ed4
Rename some vue variables
2019-02-12 12:49:05 +02:00
Pavel Djundik
f526aa8b8b
Do not navigate history when autocompleting
2019-02-12 12:49:05 +02:00
Pavel Djundik
4c103b467b
Implement input history per channel
2019-02-12 12:49:05 +02:00
Pavel Djundik
b6e07a43f5
Make a consistent single funciton for updating notified/favicon/title
2019-02-12 12:49:05 +02:00
Pavel Djundik
4f3dbc4b8f
Fix up how span elements are generated in message parser
2019-02-12 12:49:05 +02:00
Pavel Djundik
c3a1c77447
Rebase image uploading to Vue
2019-02-12 12:49:05 +02:00
Pavel Djundik
5c69fe104d
Keep scroll to bottom and check 'more' button previews when toggling sidebars
2019-02-12 12:49:05 +02:00
Pavel Djundik
f45f9a83ee
Remove unnecessary resize handler
2019-02-12 12:49:05 +02:00
Pavel Djundik
26dc37033c
Make connection-error a vue state
2019-02-12 12:49:04 +02:00
Pavel Djundik
e2c65fd0de
Fix titles on emojis
2019-02-12 12:49:04 +02:00
Pavel Djundik
7c8441a93b
Clear user lists on all channels when disconnected from network
2019-02-12 12:48:45 +02:00
Pavel Djundik
1d4ab8fff1
Fix autocompletion menu not closing on send
2019-02-12 12:48:45 +02:00
Pavel Djundik
853f67ab40
Synchornize channel state to the client
2019-02-12 12:48:44 +02:00
Pavel Djundik
f2cbd1efed
Pass PREFIX and CHANTYPES to parser
2019-02-12 12:48:44 +02:00
Pavel Djundik
cebfa6ac84
A little cleanup
2019-02-12 12:48:44 +02:00
Pavel Djundik
104692007f
Use attr() instead of data()
2019-02-12 12:48:44 +02:00
Pavel Djundik
a10ac4e7da
Make a single function to initialize channel variables
2019-02-12 12:48:44 +02:00
Pavel Djundik
ad0f638487
Add jump-to-bottom arrow when scrolled up
2019-02-12 12:48:44 +02:00
Pavel Djundik
c70b4d4c80
Fix unread marker being off by one on the server
2019-02-12 12:48:44 +02:00
Pavel Djundik
0e7880a049
Fix autocompleting multiple times not working
2019-02-12 12:48:44 +02:00
Pavel Djundik
1bfaef1985
Keep pendingMessage on reconnect
2019-02-12 12:48:44 +02:00
Pavel Djundik
0ba6200bb7
Keep scrolledToBottom on reconnect
2019-02-12 12:48:44 +02:00
Pavel Djundik
86ddce974d
Update lobby name correctly when editing network
2019-02-12 12:48:44 +02:00
Pavel Djundik
c42fc55c6f
Fix reconnection state
2019-02-12 12:48:44 +02:00
Pavel Djundik
04d86a3550
Fix channel sort not working
2019-02-12 12:48:44 +02:00
Pavel Djundik
36b6fdcc88
Reference scrolledToBottom variable instead of recalculating on message received
2019-02-12 12:48:44 +02:00
Pavel Djundik
a15b10ca45
Revert slideout.js changes
2019-02-12 12:48:44 +02:00
Pavel Djundik
5d8a581201
Fix input not resizing back after sending a message
2019-02-12 12:48:44 +02:00
Pavel Djundik
bb0450cb31
Move history logic to MessageList, fix previews not keeping scroll
2019-02-12 12:48:43 +02:00
Pavel Djundik
9926157683
Resize input when typing
2019-02-12 12:48:43 +02:00
Pavel Djundik
8e130f0259
Fix incorrectly trimming channel
2019-02-12 12:48:43 +02:00
Pavel Djundik
9249464445
Fix condensed line being clickable
2019-02-12 12:48:43 +02:00
Pavel Djundik
797731262a
Fix menu swiping
2019-02-12 12:48:43 +02:00
Pavel Djundik
d9206c1087
Check if element exists before trying to change message
2019-02-12 12:48:43 +02:00
Pavel Djundik
b88a186d05
Fix history not loading after trimming
2019-02-12 12:48:43 +02:00
Pavel Djundik
6a82114b62
Cleanup msg event
2019-02-12 12:48:43 +02:00
Pavel Djundik
8931570c02
Port join-channel completely to Vue
2019-02-12 12:48:43 +02:00
Pavel Djundik
80a12d98b4
Update topic in channel state
2019-02-12 12:48:43 +02:00
Pavel Djundik
e92f5d573b
Remove extra invalid class on links in chat
2019-02-12 12:48:43 +02:00
Pavel Djundik
a8c777c797
Remove render.js
2019-02-12 12:48:43 +02:00
Pavel Djundik
499beb0257
Keep scroll position when scrolling up
2019-02-12 12:48:43 +02:00
Pavel Djundik
a5625ba203
Remove scroll code from more
event
2019-02-12 12:48:43 +02:00
Pavel Djundik
e3ff385ae0
Remove HTML version of parse()
2019-02-12 12:48:43 +02:00
Pavel Djundik
d83dcc35e2
Port 'more' button in previews to Vue
2019-02-12 12:48:43 +02:00
Pavel Djundik
1cd28a5ccf
Fix sending msg:preview:toggle to server
2019-02-12 12:48:43 +02:00
Pavel Djundik
2bb8287519
Render preview toggle in Vue
2019-02-12 12:48:43 +02:00
Pavel Djundik
ebfc6fa724
Create elements instead of using raw HTML
2019-02-12 12:48:43 +02:00
Pavel Djundik
ebda927bb1
Render toggle button after links
2019-02-12 12:48:43 +02:00
Pavel Djundik
5792bff49d
Display previews as they come in; fix image viewer
2019-02-12 12:48:43 +02:00
Pavel Djundik
c6262a36e6
Fix tab completion not updating model
2019-02-12 12:48:43 +02:00
Pavel Djundik
c369f0fdb7
Some fixes with unread marker
2019-02-12 12:48:43 +02:00
Pavel Djundik
771739cf94
Port ignore list to Vue
2019-02-12 12:48:42 +02:00
Pavel Djundik
739d44b561
Trim channel when switching away from it
2019-02-12 12:48:42 +02:00
Pavel Djundik
48187a0260
Delete userlist.js
2019-02-12 12:48:42 +02:00
Richard Lewis
c431ac6306
Add hover selection to user list.
2019-02-12 12:48:42 +02:00
Richard Lewis
060097c118
Implement keyboard navigation in user list.
2019-02-12 12:48:42 +02:00
Pavel Djundik
30bdfe9d3f
Hide 'show more history' button if there are no more messages
2019-02-12 12:48:42 +02:00
Pavel Djundik
595915fefd
Render link previews in Vue
2019-02-12 12:48:42 +02:00
Pavel Djundik
5f5b5fef3d
Enable .js linter
2019-02-12 12:48:42 +02:00
Pavel Djundik
db803a8548
Port channel list to Vue
2019-02-12 12:48:42 +02:00
Pavel Djundik
96569e71a3
Some fixes
2019-02-12 12:48:42 +02:00
Pavel Djundik
121dd35c3b
Port ban lists to Vue
2019-02-12 12:48:42 +02:00
Pavel Djundik
aa1446c19d
Some fixes for unread marker
2019-02-12 12:48:42 +02:00
Pavel Djundik
f9967a92c7
Remove console.log
2019-02-12 12:48:42 +02:00
Pavel Djundik
a54a726e93
Refactor client side commands
...
Co-Authored-By: Max Leiter <hello@maxleiter.com>
2019-02-12 12:48:42 +02:00
Pavel Djundik
084e01cf46
Implement message trimming
2019-02-12 12:48:42 +02:00
Pavel Djundik
f9d255b678
Passthrough input ref
2019-02-12 12:48:42 +02:00
Pavel Djundik
2e3b95b9ed
Fix input keybinds
2019-02-12 12:48:42 +02:00
Pavel Djundik
dbe6df1ab6
Fix clipboard "fixes"
2019-02-12 12:48:42 +02:00
Pavel Djundik
1831e2e63e
Fix inline channel links
2019-02-12 12:48:42 +02:00
Pavel Djundik
eff6dcb514
Fix context menu opening wrong thing
2019-02-12 12:48:42 +02:00
Pavel Djundik
aea779cfdf
Remove some unnecessary code
2019-02-12 12:48:42 +02:00
Pavel Djundik
9ab5b9d791
Implement condensed messages in Vue
2019-02-12 12:48:42 +02:00
Pavel Djundik
0730825185
Convert message actions to Vue
2019-02-12 12:48:41 +02:00
Pavel Djundik
dee76adc0c
Implement network collapsing in Vue
2019-02-12 12:48:41 +02:00
Pavel Djundik
e0e48925b5
Remove input history
2019-02-12 12:48:41 +02:00
Pavel Djundik
a229138ca6
Add connected state
2019-02-12 12:48:41 +02:00
Pavel Djundik
3300276c27
Delete some files and undo server change
2019-02-12 12:48:41 +02:00
Pavel Djundik
7b209e5d31
Missed a setting
2019-02-12 12:48:41 +02:00
Pavel Djundik
e28e13bd10
Make class settings work (colored nicks, etc)
2019-02-12 12:48:41 +02:00
Pavel Djundik
ebb63f2742
Fix sending messages
2019-02-12 12:48:41 +02:00
Pavel Djundik
09fa3e5c86
Fix autocompletion
2019-02-12 12:48:41 +02:00
Pavel Djundik
0e930c9356
Make history loading work
2019-02-12 12:48:41 +02:00
Pavel Djundik
25840dfef4
Single chat container (with buffered input), user list in vue
2019-02-12 12:48:41 +02:00
Pavel Djundik
1d2a11729f
Render chat/messages in Vue (mostly broken)
2019-02-12 12:48:41 +02:00
Pavel Djundik
0b269423aa
Remove remaining DOM references to badge/highlight
2019-02-12 12:48:41 +02:00
Pavel Djundik
d4a23ffc98
Fix loading disappearing too soon
2019-02-12 12:48:41 +02:00
Pavel Djundik
7e332b817d
Channel list rendering with Vue
...
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-02-12 12:48:41 +02:00
Pavel Djundik
d33021773c
Fix up textarea growing to avoid rounding issues in Chrome
2019-02-05 23:24:30 +02:00
Pavel Djundik
9003768d56
Fix up link insertion after uploads to be saner
2019-01-30 20:00:59 +02:00
Pavel Djundik
bb6a9657a0
Fix touch position being null when touching with multiple fingers
2018-10-15 14:54:33 +03:00
William Boman
658dc5a3a2
fix automatically closing sidebar on some mobile viewports
...
Co-authored-by: Pavel Djundik <github@xpaw.me>
Mobile viewports whose width is equal to the upper boundary
of the mobile viewport breakpoint would not automatically
close the sidebar when selecting an item in it.
Closes #2783 .
2018-09-19 09:37:03 +02:00
Alistair McKinlay
35c328b557
Add 3 commands that were missing on client autocomplete
2018-09-06 09:00:39 +01:00
Pavel Djundik
ce212e001c
Add file uploading support
...
Co-Authored-By: Max Leiter <hello@maxleiter.com>
Co-Authored-By: Jérémie Astori <astorije@users.noreply.github.com>
2018-09-03 10:30:05 +03:00
Pavel Djundik
b3c282f663
Merge pull request #2701 from adamus1red/adamus1red/iframe-localstorage
...
Add `try`/`catch` to `localStorage` methods
2018-09-01 11:18:55 +03:00