aboutsummaryrefslogtreecommitdiff
path: root/vnext/src
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2018-07-15 09:48:11 +0300
committerGravatar Vitaly Takmazov2023-01-13 10:37:53 +0300
commit9057ca1824f0d5ba32478dd1ead9f97a5e44c387 (patch)
tree586aee95cb94df5af6e2d0e6d2e329e65297a970 /vnext/src
parent07f74dd46ecb18eac2047d4042919f1b092b682d (diff)
localStorage -> cookies
Diffstat (limited to 'vnext/src')
-rw-r--r--vnext/src/App.js10
-rw-r--r--vnext/src/api/index.js16
-rw-r--r--vnext/src/components/Types.js2
3 files changed, 15 insertions, 13 deletions
diff --git a/vnext/src/App.js b/vnext/src/App.js
index 14ae7d5e..20ece23e 100644
--- a/vnext/src/App.js
+++ b/vnext/src/App.js
@@ -15,6 +15,8 @@ import Avatar from './components/Avatar';
import Header from './components/Header';
import SearchBox from './components/SearchBox';
+import cookies from 'react-cookies';
+
import { me } from './api';
export default class App extends React.Component {
@@ -22,13 +24,13 @@ export default class App extends React.Component {
super(props);
let params = qs.parse(window.location.search);
if (params.hash) {
- localStorage.visitor = JSON.stringify({ uid: 0, hash: params.hash });
+ cookies.save('hash', params.hash, { path: '/' });
window.history.replaceState({}, document.title, `${window.location.protocol}//${window.location.host}${window.location.pathname}`);
}
this.state = {
- visitor: localStorage.visitor ? JSON.parse(localStorage.visitor) : {
+ visitor: {
uid: 0,
- hash: params.hash || ''
+ hash: cookies.load('hash')
}
};
this.pm = React.createRef();
@@ -87,7 +89,7 @@ export default class App extends React.Component {
}
componentDidMount() {
- const { hash, uid } = this.state.visitor;
+ const { hash } = this.state.visitor;
this.initWS();
if (hash) {
me().then(visitor => this.auth(visitor));
diff --git a/vnext/src/api/index.js b/vnext/src/api/index.js
index c9ae5688..efa57cf1 100644
--- a/vnext/src/api/index.js
+++ b/vnext/src/api/index.js
@@ -1,4 +1,5 @@
import axios from 'axios';
+import cookies from 'react-cookies';
const apiBaseUrl = 'https://api.juick.com';
@@ -6,11 +7,9 @@ const client = axios.create({
baseURL: apiBaseUrl
});
client.interceptors.request.use(config => {
- if (localStorage.visitor) {
- config.params = Object.assign(config.params || {}, {
- hash: JSON.parse(localStorage.visitor).hash
- });
- }
+ config.params = Object.assign(config.params || {}, {
+ hash: cookies.load('hash')
+ });
return config;
});
@@ -22,10 +21,11 @@ export function me(username = '', password = '') {
'Authorization': 'Basic ' + window.btoa(unescape(encodeURIComponent(username + ':' + password)))
} : {}
}).then(response => {
- localStorage.visitor = JSON.stringify(response.data);
- resolve(response.data);
+ let visitor = response.data;
+ cookies.save('hash', visitor.hash, { path: '/' });
+ resolve(visitor);
}).catch(reason => {
- localStorage.clear();
+ cookies.remove('hash', { path: '/'});
reject(reason);
});
});
diff --git a/vnext/src/components/Types.js b/vnext/src/components/Types.js
index f7177f6a..6596dc8e 100644
--- a/vnext/src/components/Types.js
+++ b/vnext/src/components/Types.js
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
export const UserType = PropTypes.shape({
uid: PropTypes.number.isRequired,
- uname: PropTypes.string.isRequired
+ uname: PropTypes.string
});
export const MessageType = PropTypes.shape({