Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d6114f69b5 |
@@ -4,9 +4,6 @@
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.js
|
||||
# .pnp.cjs
|
||||
# .pnp.loader.mjs
|
||||
.yarn
|
||||
|
||||
/.idea
|
||||
/.vscode
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
"react-calendar": "^4.0.0",
|
||||
"react-chartjs-2": "^4.1.0",
|
||||
"react-countup": "^6.2.0",
|
||||
"react-datepicker": "^4.10.0",
|
||||
"react-dom": "^18.0.0",
|
||||
"react-lottie": "^1.2.3",
|
||||
"react-redux": "^8.0.2",
|
||||
|
||||
@@ -65,9 +65,6 @@ export default function Routers() {
|
||||
<Route exact path="/resources" element={<ResourcePage />} />
|
||||
<Route exact path="/my-wallet" element={<MyWalletPage />} />
|
||||
<Route exact path="/notification" element={<Notification />} />
|
||||
|
||||
<Route exact path="/t-weight" element={<TrackingPage />} />
|
||||
|
||||
<Route
|
||||
exact
|
||||
path="/my-collection/collection-item"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 19 KiB |
@@ -16,7 +16,7 @@ export default function TrackItemCard({ datas, hidden = false }) {
|
||||
}
|
||||
};
|
||||
return (
|
||||
<div className="card-style-one flex flex-col justify-between w-full h-[200px] bg-white dark:bg-dark-white p-3 pb rounded-2xl">
|
||||
<div className="card-style-one flex flex-col justify-between w-full h-[187px] bg-white dark:bg-dark-white p-3 pb rounded-2xl">
|
||||
<div className="content">
|
||||
{/* thumbnail */}
|
||||
<div className="w-full h-40">
|
||||
@@ -38,7 +38,18 @@ export default function TrackItemCard({ datas, hidden = false }) {
|
||||
>
|
||||
<Icons name="love" />
|
||||
</span>
|
||||
|
||||
<span
|
||||
onClick={() => setOption(!options)}
|
||||
className="w-7 h-7 flex justify-center items-center bg-white rounded-full cursor-pointer"
|
||||
>
|
||||
<Icons name="dots" />
|
||||
</span>
|
||||
{options && (
|
||||
<div
|
||||
onClick={() => setOption(!options)}
|
||||
className="w-full h-screen fixed top-0 left-0 z-10"
|
||||
></div>
|
||||
)}
|
||||
</div>
|
||||
{hidden && (
|
||||
<div className="flex justify-center">
|
||||
@@ -76,18 +87,22 @@ export default function TrackItemCard({ datas, hidden = false }) {
|
||||
</div>
|
||||
{/* user */}
|
||||
<div className="user w-ful -mt-6 mb-2">
|
||||
|
||||
<div className="user-img w-10 h-10 flex justify-center items-center overflow-hidden rounded-full mb-2 ml-4">
|
||||
<img
|
||||
src={localImgLoad(`images/${datas.profile_img}`)}
|
||||
alt="user"
|
||||
className=" w-full h-full"
|
||||
/>
|
||||
</div>
|
||||
<p className="text-sm text-thin-light-gray dark:text-white">
|
||||
<Link
|
||||
to={`/${datas.widget}`}
|
||||
className="text-xl font-bold text-dark-gray dark:text-white mb-2 capitalize line-clamp-1"
|
||||
>
|
||||
{datas.title}
|
||||
Owned by
|
||||
<Link to="/user-profile" className="text-purple ml-1">
|
||||
{datas.username}
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -6,7 +6,6 @@ import Reminder from "../../assets/images/icons/myFit_reminder.png";
|
||||
import Resources from "../../assets/images/icons/myFit_resources.png";
|
||||
import Settings from "../../assets/images/icons/myFit_settings.png";
|
||||
import Tracking from "../../assets/images/icons/myFit_tracking.png";
|
||||
import Tracking2 from "../../assets/images/icons/myFit_tracking2.png";
|
||||
|
||||
export default function Icons({ name }) {
|
||||
return (
|
||||
@@ -478,7 +477,6 @@ export default function Icons({ name }) {
|
||||
</svg>
|
||||
) : name === "settings" ? (<img src={Settings} alt="image" className="w-[24px] h-[24px]" />)
|
||||
: name === "tracking" ? (<img src={Tracking} alt="image" className="w-[24px] h-[24px]" />)
|
||||
: name === "tracking2" ? (<img src={Tracking2} alt="image" className="w-[24px] h-[24px]" />)
|
||||
: name === "resources" ? (<img src={Resources} alt="image" className="w-[24px] h-[24px]" />)
|
||||
: name === "reminder" ? (<img src={Reminder} alt="image" className="w-[24px] h-[24px]" />)
|
||||
: name === "profile" ? (<img src={Profile} alt="image" className="w-[24px] h-[24px]" />)
|
||||
|
||||
@@ -1,18 +1,7 @@
|
||||
import React, { useState } from "react";
|
||||
import { Link } from "react-router-dom";
|
||||
import topCreator1 from "../../assets/images/top-creator-1.png";
|
||||
import topCreator2 from "../../assets/images/top-creator-2.png";
|
||||
import topCreator3 from "../../assets/images/top-creator-3.png";
|
||||
import topCreator4 from "../../assets/images/top-creator-4.png";
|
||||
import topCreator5 from "../../assets/images/top-creator-5.png";
|
||||
import tracking from "../../assets/images/icons/myFit_tracking2.png";
|
||||
import DoughnutChart from "../Charts/DoughnutChart";
|
||||
import MiniLineChart from "../Charts/MiniLineChart";
|
||||
import Icons from "../Helpers/Icons";
|
||||
import BtcIco from "../Helpers/Icons/BtcIco";
|
||||
import EthIco from "../Helpers/Icons/EthIco";
|
||||
import LtcIco from "../Helpers/Icons/LtcIco";
|
||||
import Usdt from "../Helpers/Icons/Usdt";
|
||||
import SelectBox from "../Helpers/SelectBox";
|
||||
|
||||
export default function RightSideBar() {
|
||||
@@ -195,7 +184,7 @@ export default function RightSideBar() {
|
||||
<Link to="/#" className="cursor-pointer p-2 md:hover:shadow-md transition md:hover:duration-300 rounded-md">
|
||||
<div className="item flex space-x-3 items-center">
|
||||
<span className="item-icon group-hover:bg-purple group-hover:text-white w-8 h-8 flex justify-center items-center transition-all duration-300 ease-in-out bg-light-purple dark:bg-dark-light-purple rounded-full">
|
||||
<Icons name="tracking2" />
|
||||
<Icons name="tracking" />
|
||||
</span>
|
||||
<p className="text-thin-light-gray text-base font-medium">
|
||||
Add Tracking
|
||||
@@ -204,7 +193,6 @@ export default function RightSideBar() {
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
|
||||
@@ -3,13 +3,12 @@ import Layout from '../Partials/Layout'
|
||||
import { Link, useNavigate, useLocation, useParams } from 'react-router-dom'
|
||||
|
||||
// import { toast } from 'react-toastify';
|
||||
import DatePicker from "react-datepicker";
|
||||
|
||||
import "react-datepicker/dist/react-datepicker.css";
|
||||
|
||||
import InputCom from "../Helpers/Inputs/InputCom";
|
||||
|
||||
import Calendar from 'react-calendar';
|
||||
import 'react-calendar/dist/Calendar.css';
|
||||
|
||||
import usersService from "../../services/UsersService";
|
||||
|
||||
|
||||
@@ -38,8 +37,8 @@ export default function AddEditReminder({ className }) {
|
||||
'member_id': localStorage.getItem('member_id'),
|
||||
description: location.state?.reminder.description || '',
|
||||
note: location.state?.reminder.note || '',
|
||||
category: location.state?.reminder.code || '',
|
||||
mode: location.state?.reminder.code || '',
|
||||
category: location.state?.reminder.category || '',
|
||||
mode: location.state?.reminder.mode || '',
|
||||
'start_date': location.state? new Date(location.state?.reminder.start_date) : startDate,
|
||||
'end_date': location.state? new Date(location.state?.reminder.end_date) : endDate
|
||||
})
|
||||
@@ -50,6 +49,7 @@ export default function AddEditReminder({ className }) {
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
const getUserMode = async () => {
|
||||
try {
|
||||
const res = await api.getUserModeCategory('remmode');
|
||||
@@ -87,21 +87,19 @@ export default function AddEditReminder({ className }) {
|
||||
const res = await api.addReminder(reminder);
|
||||
if(res && res.status == 200){
|
||||
setSuccess(false)
|
||||
setMessage({status: true, message: 'Reminder set successfully'})
|
||||
setMessage({status: true, message: 'Reminder successfully'})
|
||||
setTimeout(()=>{
|
||||
navigate('/reminders', {replace: true})
|
||||
}, 2000)
|
||||
return
|
||||
}
|
||||
setSuccess(false)
|
||||
setMessage({status: false, message: `Sorry, couldn't perform action`})
|
||||
setMessage({status: false, message: `Opps, couldn't perform action`})
|
||||
} catch (error) {
|
||||
setSuccess(false)
|
||||
setMessage({status: false, message: 'An error occurred'})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
getUserMode();
|
||||
@@ -134,7 +132,7 @@ export default function AddEditReminder({ className }) {
|
||||
|
||||
{/* first name and last name */}
|
||||
<div className="xl:flex xl:space-x-7 mb-6">
|
||||
<div className="field w-full reminder-select mb-6 xl:mb-0">
|
||||
<div className="field w-full mb-6 xl:mb-0">
|
||||
{/* <InputCom
|
||||
label="Reminder Type"
|
||||
type="text"
|
||||
@@ -143,19 +141,19 @@ export default function AddEditReminder({ className }) {
|
||||
value={''}
|
||||
/> */}
|
||||
<label className="input-label text-dark-gray dark:text-white text-xl font-bold block mb-2.5">Reminder Type</label>
|
||||
<select value={reminder.category} name='category' className='bg-slate-50 rounded-full pl-4 dark:bg-dark-white text-gray-700 w-full py-5 cursor-pointer focus:outline-none focus:border-none' onChange={onReminderInputChange}>
|
||||
<select value={reminder.category} name='category' className='bg-white dark:bg-dark-white text-gray-700 w-full py-5 cursor-pointer focus:outline-none focus:border-none' onChange={onReminderInputChange}>
|
||||
<option className='' value="">Select category</option>
|
||||
{category.length > 0 &&
|
||||
<>
|
||||
{category.map((option, index)=>(
|
||||
<option key={index} className='' value={option.code}>{option.category}</option>
|
||||
<option key={index} className='' value={option.category}>{option.category}</option>
|
||||
))
|
||||
}
|
||||
</>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
<div className="field w-full reminder-select">
|
||||
<div className="field w-full">
|
||||
{/* <InputCom
|
||||
label="Mode"
|
||||
type="text"
|
||||
@@ -164,12 +162,12 @@ export default function AddEditReminder({ className }) {
|
||||
value={''}
|
||||
/> */}
|
||||
<label className="input-label text-dark-gray dark:text-white text-xl font-bold block mb-2.5">Mode</label>
|
||||
<select value={reminder.mode} name='mode' className='bg-slate-50 rounded-full pl-4 dark:bg-dark-white text-gray-700 w-full py-5 cursor-pointer focus:outline-none focus:border-none' onChange={onReminderInputChange}>
|
||||
<select value={reminder.mode} name='mode' className='bg-white dark:bg-dark-white text-gray-700 w-full py-5 cursor-pointer focus:outline-none focus:border-none' onChange={onReminderInputChange}>
|
||||
<option className='' value="">Select mode</option>
|
||||
{category.length > 0 &&
|
||||
<>
|
||||
{mode.map((option, index)=>(
|
||||
<option key={index} className='' value={option.code}>{option.mode}</option>
|
||||
<option key={index} className='' value={option.mode}>{option.mode}</option>
|
||||
))
|
||||
}
|
||||
</>
|
||||
@@ -188,8 +186,7 @@ export default function AddEditReminder({ className }) {
|
||||
value={''}
|
||||
/> */}
|
||||
<label className="input-label text-dark-gray dark:text-white text-xl font-bold block mb-2.5">Start Date</label>
|
||||
{/* <Calendar onChange={setStartDate} value={reminder.start_date} calendarType="US" /> */}
|
||||
<DatePicker selected={startDate} onChange={(date) => setStartDate(date)} value={reminder.start_date} />
|
||||
<Calendar onChange={setStartDate} value={reminder.start_date} calendarType="US" />
|
||||
</div>
|
||||
<div className="field w-full">
|
||||
{/* <InputCom
|
||||
@@ -200,8 +197,7 @@ export default function AddEditReminder({ className }) {
|
||||
value={''}
|
||||
/> */}
|
||||
<label className="input-label text-dark-gray dark:text-white text-xl font-bold block mb-2.5">End Date</label>
|
||||
{/* <Calendar onChange={setEndDate} value={reminder.end_date} calendarType="US" /> */}
|
||||
<DatePicker selected={endDate} onChange={(date) => setEndDate(date)} value={reminder.end_date} />
|
||||
<Calendar onChange={setEndDate} value={reminder.end_date} calendarType="US" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -251,7 +247,7 @@ export default function AddEditReminder({ className }) {
|
||||
className="w-[152px] h-[46px] flex justify-center items-center btn-gradient text-base rounded-full text-white"
|
||||
onClick={handleAddReminder}
|
||||
>
|
||||
{location.state?.reminder ? 'Edit' : 'Add Reminder'}
|
||||
{location.state?.reminder ? 'Edit' : 'Upadate'}
|
||||
</button>
|
||||
}
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,6 @@ import dataImage1 from "../../assets/images/data-table-user-1.png";
|
||||
import usersService from "../../services/UsersService";
|
||||
import SelectBox from "../Helpers/SelectBox";
|
||||
import { Link } from "react-router-dom";
|
||||
import localImgLoad from "../../lib/localImgLoad";
|
||||
|
||||
export default function ReminderTable({ className }) {
|
||||
const api = new usersService();
|
||||
@@ -99,7 +98,7 @@ export default function ReminderTable({ className }) {
|
||||
<div className="flex space-x-2 items-center">
|
||||
<div className="w-[60px] h-[60px] rounded-full overflow-hidden flex justify-center items-center">
|
||||
<img
|
||||
src={(reminder.category!='')?localImgLoad(`images/${reminder.category}.png`):dataImage1}
|
||||
src={dataImage1}
|
||||
alt="data"
|
||||
className="w-full h-full"
|
||||
/>
|
||||
|
||||
@@ -3,7 +3,7 @@ import TrackItemCard from "../Cards/TrackItemCard";
|
||||
import Icons from "../Helpers/Icons";
|
||||
import SliderCom from "../Helpers/SliderCom";
|
||||
|
||||
export default function TrackCategory({ className, trackcategory }) {
|
||||
export default function TrackCategoy({ className, trending }) {
|
||||
const settings = {
|
||||
arrows: false,
|
||||
slidesToShow: 4,
|
||||
@@ -91,9 +91,9 @@ export default function TrackCategory({ className, trackcategory }) {
|
||||
{/* trending products */}
|
||||
<div className="trending-products relative w-full">
|
||||
<SliderCom selector={trendingSlider} settings={settings}>
|
||||
{trackcategory &&
|
||||
trackcategory.length > 0 &&
|
||||
trackcategory.map((item) => (
|
||||
{trending &&
|
||||
trending.length > 0 &&
|
||||
trending.map((item) => (
|
||||
<TrackItemCard key={item.id} datas={item} />
|
||||
))}
|
||||
</SliderCom>
|
||||
|
||||
@@ -1,24 +1,20 @@
|
||||
import React, { useEffect, useState } from "react";
|
||||
import React from "react";
|
||||
import HistoryAnalyticsCard from "../Cards/HistoryAnalyticsCard";
|
||||
import SellHistoryMarketVisitorAnalytic from "../Home/SellHistoryMarketVisitorAnalytic";
|
||||
import Layout from "../Partials/Layout";
|
||||
import TrackingTable from "./TrackingTable";
|
||||
import MarketHistorySection from "./MarketHistorySection";
|
||||
import TrackCategory from "./TrackCategory";
|
||||
import TrackCategoy from "./TrackCategory";
|
||||
import datas from "../../data/product_data.json";
|
||||
|
||||
export default function Tracking(props) {
|
||||
console.log("IN TRACKING COMPO", props);
|
||||
|
||||
export default function Tracking() {
|
||||
const trending = datas.datas;
|
||||
console.log("IN TRACKING COMPO TRD", trending);
|
||||
//debugger;
|
||||
return (
|
||||
<>
|
||||
<Layout>
|
||||
<div className="history-wrapper w-full mb-10">
|
||||
<div className="main-wrapper w-full">
|
||||
<TrackCategory trackcategory={props.trackCategory} className="mb-10" />
|
||||
<TrackCategoy trending={trending} className="mb-10" />
|
||||
<TrackingTable />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -712,28 +712,3 @@ TODO: Responsive ===========================
|
||||
height: 4.813rem !important;
|
||||
transition: all 500ms;
|
||||
}
|
||||
|
||||
.reminder-select select{
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background: url("data:image/svg+xml,<svg height='10px' width='10px' viewBox='0 0 16 16' fill='%23000000' xmlns='http://www.w3.org/2000/svg'><path d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/></svg>") no-repeat #fafafa;
|
||||
background-position: calc(100% - 0.75rem) center !important;
|
||||
box-shadow: 0 0 0.5em 0 rgba(194, 194, 194, 0.2);
|
||||
}
|
||||
|
||||
.reminder-select select::-ms-expand {
|
||||
display: none; /* Remove default arrow in Internet Explorer 10 and 11 */
|
||||
}
|
||||
|
||||
.reminder-select select option{
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* Target Internet Explorer 9 to undo the custom arrow */
|
||||
@media screen and (min-width:0\0) {
|
||||
.reminder-select select {
|
||||
background: none\9;
|
||||
padding: 5px\9;
|
||||
}
|
||||
}
|
||||
@@ -43,13 +43,6 @@ class usersService {
|
||||
};
|
||||
return this.getAuxEnd("/resources", reqData);
|
||||
}
|
||||
|
||||
getTrackCategory(){
|
||||
var reqData = {
|
||||
member_id: localStorage.getItem("member_id")
|
||||
};
|
||||
return this.getAuxEnd("/trackcategory", reqData);
|
||||
}
|
||||
//---------------------------------------- -----
|
||||
//---------------------------------------- -----
|
||||
// Unified call below
|
||||
|
||||
@@ -1,32 +1,10 @@
|
||||
import React, { useEffect, useState } from "react";
|
||||
import React from "react";
|
||||
import Tracking from "../components/Tracking";
|
||||
import usersService
|
||||
from "../services/UsersService";
|
||||
export default function TrackingPage() {
|
||||
const userApi = new usersService();
|
||||
const [trackCategory, setTrackCategory] = useState([]);
|
||||
//debugger;
|
||||
const getTrackCategory = async () => {
|
||||
try {
|
||||
const res = await userApi.getTrackCategory();
|
||||
if(res.status == 200){
|
||||
setTrackCategory(res.data);
|
||||
return
|
||||
}
|
||||
}catch(error) {
|
||||
console.log("error ~");
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
getTrackCategory();
|
||||
}, []);
|
||||
|
||||
export default function TrackingPage() {
|
||||
return (
|
||||
<>
|
||||
<Tracking
|
||||
trackCategory={trackCategory}
|
||||
/>
|
||||
<Tracking />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||