Compare commits

...

9 Commits

Author SHA1 Message Date
Chukwumdiebube df3710ec8d faq content updated 2023-01-30 16:19:48 +01:00
jenkins 9b2145ff00 Profile layout 2023-01-28 23:52:14 -05:00
jenkins 7ce87a3ee8 test 2023-01-28 23:13:13 -05:00
jenkins 37fa170108 Headet token 2023-01-28 22:54:47 -05:00
jenkins 9a269b5732 Addreminder 2023-01-28 22:27:03 -05:00
jenkins f766c19465 Login hx 2023-01-28 21:25:55 -05:00
jenkins 30a344970a Reminder table demo 2023-01-28 20:41:21 -05:00
jenkins e4b1ceae30 env update 2023-01-28 19:59:42 -05:00
ameye aae99a7b50 Merge branch 'task-9-login-implementation' of MyFit/users-myfit into master 2023-01-28 11:59:55 +00:00
10 changed files with 201 additions and 898 deletions
+3 -1
View File
@@ -8,4 +8,6 @@ REACT_APP_APPSITE=" https://myfitapp.mermsemr.com"
REACT_APP_AUX_ENDPOINT = "https://devapi.mermsemr.com/en/desktop/api/v2/myfit"
REACT_APP_USERS_ENDPOINT = "https://devapi.mermsemr.com/en/desktop/api/v2/myfituser"
REACT_APP_USERS_ENDPOINT = "https://devapi.mermsemr.com/en/desktop/api/v2/myfituser"
REACT_APP_SESSION_EXPIRE_MINUTES = 5
@@ -145,6 +145,7 @@ export default function AuthProfile() {
</div>
</div>
<ActivitiesTab />
</div>
</Layout>
</>
+5 -3
View File
@@ -20,12 +20,12 @@ export default function Login() {
};
// email
const [email, setMail] = useState("support@mermsemr.com");
const [email, setMail] = useState("");
const handleEmail = (e) => {
setMail(e.target.value);
};
// password
const [password, setPassword] = useState("123456");
const [password, setPassword] = useState("");
const handlePassword = (e) => {
setPassword(e.target.value);
};
@@ -39,9 +39,11 @@ export default function Login() {
};
const loginResult = await userApi.logInUser(postData); // just for a test
// if (email === "support@mermsemr.com") {
if (loginResult.data.status > 0) { // just for a start
if (loginResult.data.status > 0 && loginResult.data.session_token !='') { // just for a start
localStorage.setItem("email", `${email}`);
localStorage.setItem("session_token", `${loginResult.data.session_token}`);
setLoginLoading(true);
// userApi.getUserReminders(); //testing
setTimeout(() => {
toast.success("Login Successfully");
navigate("/", { replace: true });
+2 -2
View File
@@ -26,7 +26,7 @@ export default function Accordion({ datas }) {
</span>
</div>
<div className="accordion-title w-full">
<p className="text-18 tracking-wide text-dark-gray dark:text-white">
<p className="text-18 tracking-wide text-dark-gray dark:text-white cursor-default">
{datas.title}
</p>
</div>
@@ -35,7 +35,7 @@ export default function Accordion({ datas }) {
<div className="accordion-body-content flex space-x-4 sm:pl-10 pl-5 pt-5">
<div className="w-[3px] h-auto bg-purple rounded-[28px]"></div>
<div className="flex-1">
<p className="text-base text-thin-light-gray tracking-wide">
<p className="text-base text-thin-light-gray tracking-wide cursor-default">
{datas.content}
</p>
</div>
@@ -104,9 +104,7 @@ export default function SellHistoryMarketVisitorAnalytic({ className }) {
}`}
>
<div className="content-wrapper w-full lg:flex xl:space-x-8 lg:space-x-4">
<div className="lg:w-1/2 w-full mb-10 lg:mb-0">
<SellHistoryWidget />
</div>
<div className="flex-1 ">
<div className="market-visitor w-full md:p-8 p-4 h-full bg-white dark:bg-dark-white overflow-hidden rounded-2xl section-shadow">
<div className="flex flex-col justify-between h-full">
@@ -127,6 +125,11 @@ export default function SellHistoryMarketVisitorAnalytic({ className }) {
</div>
</div>
</div>
<div className="lg:w-1/2 w-full mb-10 lg:mb-0">
<SellHistoryWidget />
</div>
</div>
</div>
);
File diff suppressed because it is too large Load Diff
+22 -5
View File
@@ -1,12 +1,29 @@
import React from "react";
import HistoryAnalyticsCard from "../Cards/HistoryAnalyticsCard";
import Layout from "../Partials/Layout";
import ReminderTable from "./ReminderTable";
import React from 'react'
import HistoryAnalyticsCard from '../Cards/HistoryAnalyticsCard'
import Layout from '../Partials/Layout'
import ReminderTable from './ReminderTable'
import { Link } from 'react-router-dom'
export default function Reminders() {
return (
<>
<Layout>
<div className="content-wrapper-profile-only w-full mb-6">
<div className="auth-tab-content relative mb-10">
<div className="lg:flex justify-between">
<div className="tab-items"></div>
<div style={{ transform: 'translateY(-22px)' }}>
<Link
to="/add-reminder"
className="btn-gradient lg:flex hidden w-[153px] h-[46px] rounded-full text-white justify-center items-center"
>
Add Reminder
</Link>
</div>
</div>
<div className="hidden lg:block w-full h-[1px] bg-[#DCD5FE] dark:bg-[#5356fb29] absolute top-[42px] left-0"></div>
</div>
</div>
<div className="history-wrapper w-full mb-10">
<div className="main-wrapper w-full">
<ReminderTable />
@@ -14,5 +31,5 @@ export default function Reminders() {
</div>
</Layout>
</>
);
)
}
+20 -131
View File
@@ -8,246 +8,135 @@ export default function LoginActivityTab() {
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400">
<tbody>
<tr className="text-base text-thin-light-gray border-b dark:border-[#5356fb29] default-border-b dark:border-[#5356fb29] ottom ">
<td className="py-4 text-center">OS</td>
<td className="py-4 text-center">Browser</td>
<td className="py-4 text-center">Channel</td>
<td className="py-4 text-center">Date</td>
<td className="py-4 text-center">Location</td>
<td className="py-4 text-center">Last session</td>
<td className="py-4 text-center">Status</td>
<td className="py-4 text-center"></td>
</tr>
<tr className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50">
<td className="text-center py-4">
<div className="flex items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
Windows
Desktop
</span>
</div>
</td>
<td className="text-center py-4">
<div className="flex space-x-1 items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
Google Chrome
10-10-2035
</span>
</div>
</td>
<td className="text-center py-4">
<span className="text-base text-dark-gray dark:text-white whitespace-nowrap px-2">
Dhaka , Bangladesh
10.0.0.1000
</span>
</td>
<td className="text-center py-4">
<span className="text-base text-thin-light-gray font-medium whitespace-nowrap px-2">
2 days ago
</span>
</td>
<td className="text-center py-4">
<span className="text-sm px-[10px] py-[6px] rounded-full bg-light-green text-white capitalize">
active
</span>
</td>
<td className="text-center py-4">
<button
type="button"
className=" text-thin-light-gray hover:text-red-400"
>
<Icons name="deep-delete" />
</button>
</td>
</tr>
<tr className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50">
<td className="text-center py-4">
<div className="flex items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
Mac
Desktop
</span>
</div>
</td>
<td className="text-center py-4">
<div className="flex space-x-1 items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
Firefox
10-10-2035
</span>
</div>
</td>
<td className="text-center py-4">
<span className="text-base text-dark-gray dark:text-white whitespace-nowrap px-2">
Tokyo,japan
10.0.0.1000
</span>
</td>
<td className="text-center py-4">
<span className="text-base text-thin-light-gray font-medium whitespace-nowrap px-2">
5 days ago
</span>
</td>
<td className="text-center py-4">
<span className="text-sm px-[10px] py-[6px] rounded-full bg-light-red text-white capitalize">
Inactive
</span>
</td>
<td className="text-center py-4">
<button
type="button"
className=" text-thin-light-gray hover:text-red-400"
>
<Icons name="deep-delete" />
</button>
</td>
</tr>
<tr className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50">
<td className="text-center py-4">
<div className="flex items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
App
Desktop
</span>
</div>
</td>
<td className="text-center py-4">
<div className="flex space-x-1 items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
App
10-10-2035
</span>
</div>
</td>
<td className="text-center py-4">
<span className="text-base text-dark-gray dark:text-white whitespace-nowrap px-2">
Barhin,Dubai
10.0.0.1000
</span>
</td>
<td className="text-center py-4">
<span className="text-base text-thin-light-gray font-medium whitespace-nowrap px-2">
2 days ago
</span>
</td>
<td className="text-center py-4">
<span className="text-sm px-[10px] py-[6px] rounded-full bg-light-green text-white capitalize">
active
</span>
</td>
<td className="text-center py-4">
<button
type="button"
className=" text-thin-light-gray hover:text-red-400"
>
<Icons name="deep-delete" />
</button>
</td>
</tr>
<tr className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50">
<td className="text-center py-4">
<div className="flex items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
Windows
Desktop
</span>
</div>
</td>
<td className="text-center py-4">
<div className="flex space-x-1 items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
Google Chrome
10-10-2035
</span>
</div>
</td>
<td className="text-center py-4">
<span className="text-base text-dark-gray dark:text-white whitespace-nowrap px-2">
Dhaka , Bangladesh
10.0.0.1000
</span>
</td>
<td className="text-center py-4">
<span className="text-base text-thin-light-gray font-medium whitespace-nowrap px-2">
2 days ago
</span>
</td>
<td className="text-center py-4">
<span className="text-sm px-[10px] py-[6px] rounded-full bg-light-green text-white capitalize">
active
</span>
</td>
<td className="text-center py-4">
<button
type="button"
className=" text-thin-light-gray hover:text-red-400"
>
<Icons name="deep-delete" />
</button>
</td>
</tr>
<tr className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50">
<td className="text-center py-4">
<div className="flex items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
Mac
Desktop
</span>
</div>
</td>
<td className="text-center py-4">
<div className="flex space-x-1 items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
Firefox
10-10-2035
</span>
</div>
</td>
<td className="text-center py-4">
<span className="text-base text-dark-gray dark:text-white whitespace-nowrap px-2">
Tokyo,japan
10.0.0.1000
</span>
</td>
<td className="text-center py-4">
<span className="text-base text-thin-light-gray font-medium whitespace-nowrap px-2">
5 days ago
</span>
</td>
<td className="text-center py-4">
<span className="text-sm px-[10px] py-[6px] rounded-full bg-light-red text-white capitalize">
Inactive
</span>
</td>
<td className="text-center py-4">
<button
type="button"
className=" text-thin-light-gray hover:text-red-400"
>
<Icons name="deep-delete" />
</button>
</td>
</tr>
<tr className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50">
<td className="text-center py-4">
<div className="flex items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
App
Mobile
</span>
</div>
</td>
<td className="text-center py-4">
<div className="flex space-x-1 items-center justify-center">
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap px-2">
App
10-10-2035
</span>
</div>
</td>
<td className="text-center py-4">
<span className="text-base text-dark-gray dark:text-white whitespace-nowrap px-2">
Barhin,Dubai
10.0.0.1000
</span>
</td>
<td className="text-center py-4">
<span className="text-base text-thin-light-gray font-medium whitespace-nowrap px-2">
2 days ago
</span>
</td>
<td className="text-center py-4">
<span className="text-sm px-[10px] py-[6px] rounded-full bg-light-green text-white capitalize">
active
</span>
</td>
<td className="text-center py-4">
<button
type="button"
className=" text-thin-light-gray hover:text-red-400"
>
<Icons name="deep-delete" />
</button>
</td>
</tr>
</tbody>
</table>
+12 -17
View File
@@ -2,38 +2,33 @@
"datas": [
{
"id": 0,
"title": "Can I resell an NFT?",
"content": "What you do own when you buy an NFT are the keys to a non-fungible perhaps unique token. That token is yours to trade or hold or display in Decentraland. But the digital file associated with an NFT is just as easy to copy and paste and download as any other the Finally, players lose their NFTs sometimes according to the rules and regulations of the NFT game. What you do own when you buy an NFT are the keys to a non-fungible perhaps unique token. That token is yours to trade or hold or display in Decentraland. But the digital file associated with an NFT is just as easy to copy and paste and download as any other the Finally, players lose their NFTs sometimes according to the rules and regulations of the NFT game"
"title": "What is myFit App?",
"content": "myFit is your personal health care concierge. this app helps you to manage the intricacies of your daily and long term health activities. With myFit, your health record is yours at all point, you decide your provider access as needed from time to time."
},
{
"id": 1,
"title": "What can you do with an NFT after buying it?",
"content": "What you do own when you buy an NFT are the keys to a non-fungible perhaps unique token. That token is yours to trade or hold or display in Decentraland. But the digital file associated with an NFT is just as easy to copy and paste and download as any other the Finally, players lose their NFTs sometimes according to the rules and regulations of the NFT game."
"title": "How can I manage my health plan with myFit?",
"content": "myFit learns and help You to keep track of all aspects of your health - physical, mental and emotional. It bestow your unique lifestyle, needs and comprehensive well-being."
},
{
"id": 2,
"title": "Can you lose money on NFT?",
"content": "What you do own when you buy an NFT are the keys to a non-fungible perhaps unique token. That token is yours to trade or hold or display in Decentraland. But the digital file associated with an NFT is just as easy to copy and paste and download as any other the Finally, players lose their NFTs sometimes according to the rules and regulations of the NFT game."
"title": "What can I track with myFit?",
"content": "myFit automatically keeps track of physical activities, medical status & visits , schedules ,view and cancel appointments. myFit keeps your health in one place and connects you to support a healthier lifestyle."
},
{
"id": 3,
"title": "How does NFT prove ownership?",
"content": "What you do own when you buy an NFT are the keys to a non-fungible perhaps unique token. That token is yours to trade or hold or display in Decentraland. But the digital file associated with an NFT is just as easy to copy and paste and download as any other the Finally, players lose their NFTs sometimes according to the rules and regulations of the NFT game."
"title": "How can I track with myFit?",
"content": "Open myFit app , add information about your health, goals and save.Under each category of your choosing, select Activity, set a goal , see your progress."
},
{
"id": 4,
"title": "How can you tell if someone owns an NFT?",
"content": "What you do own when you buy an NFT are the keys to a non-fungible perhaps unique token. That token is yours to trade or hold or display in Decentraland. But the digital file associated with an NFT is just as easy to copy and paste and download as any other the Finally, players lose their NFTs sometimes according to the rules and regulations of the NFT game."
"title": "How secure is myFit App?",
"content": "myFit technology works synchronously with information you choose to share and will be encrypted and stored on a dedicated server so that MyFit can provide you with personalized, healthy decisions. MyFit is built to keep your data secure and protect your privacy. Your data is encrypted and you are always in control of your information."
},
{
"id": 5,
"title": "Can you lose more than you invest in NFTs?",
"content": "What you do own when you buy an NFT are the keys to a non-fungible perhaps unique token. That token is yours to trade or hold or display in Decentraland. But the digital file associated with an NFT is just as easy to copy and paste and download as any other the Finally, players lose their NFTs sometimes according to the rules and regulations of the NFT game."
},
{
"id": 6,
"title": "What can you do with an NFT after buying it?",
"content": "What you do own when you buy an NFT are the keys to a non-fungible perhaps unique token. That token is yours to trade or hold or display in Decentraland. But the digital file associated with an NFT is just as easy to copy and paste and download as any other the Finally, players lose their NFTs sometimes according to the rules and regulations of the NFT game."
"title": "What kind of device do I need?",
"content": "All you need is iPhone or Android device to enjoy all personalized metrics for personal use. Instant free download from apple and play store."
}
]
}
+17 -5
View File
@@ -11,17 +11,30 @@ class usersService {
/*
clean up the request data here
*/
localStorage.setItem("session_token", ``);
return this.postAuxEnd("/login", reqData);
}
getUserReminders(){
return this.getAuxEnd("/reminders", null);
}
//---------------------------------------- -----
//---------------------------------------- -----
// Unified call below
//---------------------------------------- -----
//---------------------------------------- -----
getAuxEnd(uri, reqData) {
debugger;
const session_token = localStorage.getItem("session_token");
let axiosConfig = {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8',
'Authorization': `Basic ${session_token}`,
}
};
const endPoint = process.env.REACT_APP_USERS_ENDPOINT + uri;
return Axios.get(endPoint)
return Axios.get(endPoint,axiosConfig)
.then((response) => {
// console.log(response);
// res = response;
@@ -44,13 +57,12 @@ class usersService {
postAuxEnd(uri, reqData) {
const endPoint = process.env.REACT_APP_USERS_ENDPOINT + uri;
const token = '..your token..'
const session_token = localStorage.getItem("session_token");
let axiosConfig = {
headers: {
'Accept': 'application/json',
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json;charset=UTF-8',
'Authorization': `Basic ${token}`,
'Authorization': `Basic ${session_token}`,
}
};
//Access-Control-Allow-Origin
@@ -60,7 +72,7 @@ class usersService {
};
// Axios.defaults.headers.post['Content-Type'] ='application/json;charset=utf-8';
// Axios.defaults.headers.post['Access-Control-Allow-Origin'] = '*'; //,axiosConfig
return Axios.post(endPoint, reqData)
return Axios.post(endPoint, reqData,axiosConfig)
.then((response) => {
console.log(response);
// res = response;