Skip to content

Commit ebd28c9

Browse files
gmorerSeluj78
authored andcommitted
add field complete and logout button enter for tag
1 parent ada1336 commit ebd28c9

File tree

3 files changed

+61
-47
lines changed

3 files changed

+61
-47
lines changed

frontend/src/pages/home.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,7 @@ import { useHistory } from 'react-router-dom';
33
import useFetchData from '../hooks/fetch_data';
44
import Loading from '../components/loading';
55
import Error from '../components/error';
6-
7-
const logOut = history => () => {
8-
localStorage.removeItem("refresh_token");
9-
sessionStorage.removeItem("access_token");
10-
history.push('login');
11-
}
6+
import { apiCall, deleteRefresh, logOut } from "../utils"
127

138
const ApiCallTest = () => {
149
const { loading, result, error } = useFetchData('/users');
@@ -28,7 +23,7 @@ const Home = () => {
2823
<div>
2924
<h1> That's my home </h1>
3025
<ApiCallTest />
31-
<button className='button' onClick={logOut(history)}> Log out </button>
26+
<button className='button' onClick={() => logOut(history)}> Log out </button>
3227
</div>
3328
)
3429
}

frontend/src/pages/onboarding.js

Lines changed: 34 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useState } from "react";
22
import { useHistory } from "react-router-dom";
3-
import { getRefreshToken, date2Html, apiCall } from "../utils";
3+
import { getRefreshToken, date2Html, apiCall, logOut } from "../utils";
44
import Loading from "./../components/loading"
55

66
/*
@@ -119,41 +119,37 @@ const add_tag = (form, setForm, id) => () => {
119119
elem.value = '';
120120
}
121121

122-
const Tags = (form, setForm, key) => {
123-
const input_id = "NEW_TAGS_MF_PRIVATE";
124-
125-
return (
126-
<div key={key}>
127-
<hr className="hr" />
128-
<div className="field is-horizontal is-grouped-centered">
129-
<div className="field-label is-normal">
130-
<label className="label">Tags:</label>
131-
</div>
132-
<div className="field-body">
133-
<div className="field has-addons" style={{ flexGrow: "0", minWidth: "10em" }}>
134-
<div className="control">
135-
<input id={input_id} className="input" type="text" placeholder="Enter a tag" />
136-
</div>
137-
<div className="control">
138-
{/*TODO: deplucate tags empty tags */}
139-
<span className="button is-info" onClick={add_tag(form, setForm, input_id)}>
140-
OK
141-
</span>
142-
</div>
122+
const input_id = "NEW_TAGS_MF_PRIVATE";
123+
const Tags = (form, setForm, key) => (
124+
<div key={key}>
125+
<hr className="hr" />
126+
<div className="field is-horizontal is-grouped-centered">
127+
<div className="field-label is-normal">
128+
<label className="label">Tags:</label>
129+
</div>
130+
<div className="field-body">
131+
<div className="field has-addons" style={{ flexGrow: "0", minWidth: "10em" }}>
132+
<div className="control">
133+
<input id={input_id} className="input" type="text" placeholder="Enter a tag" onKeyPress={e => e.key === "Enter" && add_tag(form, setForm, input_id)()} />
143134
</div>
144-
<div className="tags">
145-
{(form.tags || []).map((tag, key) => (
146-
<span key={key} className="tag">
147-
{tag}
148-
<button className="delete is-small" onClick={() => delet_tag(form, setForm, key)}></button>
135+
<div className="control">
136+
<span className="button is-info" onClick={add_tag(form, setForm, input_id)}>
137+
OK
149138
</span>
150-
))}
151139
</div>
152140
</div>
141+
<div className="tags">
142+
{(form.tags || []).map((tag, key) => (
143+
<span key={key} className="tag">
144+
{tag}
145+
<button className="delete is-small" onClick={() => delet_tag(form, setForm, key)}></button>
146+
</span>
147+
))}
148+
</div>
153149
</div>
154150
</div>
155-
)
156-
}
151+
</div>
152+
)
157153

158154
const Photos = (form, setForm, key) => (
159155
<div key={key} >
@@ -194,13 +190,11 @@ const inputState = setState => (name, value) => setState(state => { state[name]
194190
const send_info = async (form, setErrors, setIsLoading, history) => {
195191
if (!form) return;
196192
setIsLoading(true)
197-
form.tags = undefined; // TODO: remove
198-
form.birthdate = undefined; // TODO: remove
199-
form.gender = undefined; // TODO: remove
200-
const res = await apiCall({ uri: "/profile/complete", method: "POST", body: form })
193+
const res = await apiCall({ uri: "profile/complete", method: "POST", body: form })
201194
if (res.is_error) {
202195
setIsLoading(false);
203-
setErrors([res.error.message])
196+
if (!!res.error)
197+
setErrors([res.error.message])
204198
} else {
205199
localStorage.removeItem("onboarding");
206200
setIsLoading(false);
@@ -257,6 +251,11 @@ const OnboardingPage = () => {
257251
</span>
258252
</p>
259253
</div>
254+
<p className="control" style={{ textAlign: "center", marginTop: "2em" }} onClick={() => logOut(history)}>
255+
<span className="button is-danger">
256+
Disconnect
257+
</span>
258+
</p>
260259
</div>
261260
)
262261
}

frontend/src/utils.js

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,17 @@ const date2Html = d => {
1010
return `${year}-${month}-${date}`;
1111
}
1212

13-
const logOut = () => {
14-
localStorage.removeItem("refresh_token");
15-
sessionStorage.removeItem("access_token");
16-
console.log("!! Expired token !!");
17-
window.location.reload();
13+
const delete_refresh = async () => {
14+
const token = getRefreshToken();
15+
const options = {
16+
method: "DELETE",
17+
uri: `${API_URL}/auth/refresh_revoke`,
18+
headers: {
19+
"Authorization": `Bearer ${token}`
20+
},
21+
json: true
22+
};
23+
return request(options);
1824
}
1925

2026
const refreshAcess = async () => {
@@ -108,6 +114,18 @@ const effectDuration = time => ({
108114
transition: `${time}s`,
109115
})
110116

117+
const logOut = async history => {
118+
console.log("first call")
119+
try {
120+
await apiCall({ method: "DELETE", uri: "/auth/access_revoke" })
121+
await delete_refresh()
122+
} catch (e) { }
123+
localStorage.removeItem("refresh_token");
124+
sessionStorage.removeItem("access_token");
125+
localStorage.removeItem("onboarding");
126+
history.push('/login');
127+
}
128+
111129
export {
112130
getAccessToken,
113131
getRefreshToken,
@@ -118,4 +136,6 @@ export {
118136
apiCall,
119137
date2Html,
120138
discard,
139+
delete_refresh,
140+
logOut
121141
}

0 commit comments

Comments
 (0)