Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f377326b48 | |||
| feb8bd718d | |||
| a2a2dbfc24 | |||
| 1c0cb6c97f | |||
| 41c9c60fd1 | |||
| ba5646fe2c | |||
| 1f9ab45206 | |||
| 0ffa1123d2 | |||
| 9420a201e4 | |||
| 1b7ea7321e | |||
| b3e273d712 | |||
| 7fa74d6fd3 | |||
| 02c195500a | |||
| ca8e56c6dd | |||
| c265e9db33 | |||
| 2861473ea3 | |||
| a598aa3898 | |||
| 9d190916a8 | |||
| eca9455f0f | |||
| a1bf0bad0f | |||
| e236ad20f7 | |||
| 330f47baa7 | |||
| 5088aa3ead |
@@ -24,7 +24,6 @@ REACT_APP_SESSION_EXPIRE_CHECKER=60000
|
|||||||
REACT_APP_LOGIN_ERROR_TIMEOUT=7000
|
REACT_APP_LOGIN_ERROR_TIMEOUT=7000
|
||||||
REACT_APP_SIGNUP_ERROR_TIMEOUT=7000
|
REACT_APP_SIGNUP_ERROR_TIMEOUT=7000
|
||||||
|
|
||||||
REACT_APP_FLUTTERWAVE_APIKEY=FLWPUBK_TEST-54c90141b028789d671067bd72f781a9-X
|
|
||||||
|
|
||||||
# Had to change the error time to 3sec cause it took too long
|
# Had to change the error time to 3sec cause it took too long
|
||||||
REACT_APP_RESET_START_ERROR_TIMEOUT=3000
|
REACT_APP_RESET_START_ERROR_TIMEOUT=3000
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ REACT_APP_SESSION_EXPIRE_CHECKER=60000
|
|||||||
REACT_APP_LOGIN_ERROR_TIMEOUT=7000
|
REACT_APP_LOGIN_ERROR_TIMEOUT=7000
|
||||||
REACT_APP_SIGNUP_ERROR_TIMEOUT=7000
|
REACT_APP_SIGNUP_ERROR_TIMEOUT=7000
|
||||||
|
|
||||||
REACT_APP_FLUTTERWAVE_APIKEY=FLWPUBK_TEST-54c90141b028789d671067bd72f781a9-X
|
|
||||||
|
|
||||||
# Had to change the error time to 3sec cause it took too long
|
# Had to change the error time to 3sec cause it took too long
|
||||||
REACT_APP_RESET_START_ERROR_TIMEOUT=3000
|
REACT_APP_RESET_START_ERROR_TIMEOUT=3000
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ REACT_APP_SESSION_EXPIRE_CHECKER=60000
|
|||||||
REACT_APP_LOGIN_ERROR_TIMEOUT=7000
|
REACT_APP_LOGIN_ERROR_TIMEOUT=7000
|
||||||
REACT_APP_SIGNUP_ERROR_TIMEOUT=7000
|
REACT_APP_SIGNUP_ERROR_TIMEOUT=7000
|
||||||
|
|
||||||
REACT_APP_FLUTTERWAVE_APIKEY=FLWPUBK_TEST-54c90141b028789d671067bd72f781a9-X
|
|
||||||
|
|
||||||
# Had to change the error time to 3sec cause it took too long
|
# Had to change the error time to 3sec cause it took too long
|
||||||
REACT_APP_RESET_START_ERROR_TIMEOUT=3000
|
REACT_APP_RESET_START_ERROR_TIMEOUT=3000
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" id="files"><circle cx="64" cy="64" r="64" fill="#EF4C45"></circle><path fill="#CD2E30" d="M128 64v-2L92.4 26.5l-63.1 74 27.2 27c2.4.3 4.9.4 7.4.4C99.3 128 128 99.3 128 64z"></path><path fill="#E5E8EC" d="M93.5 78.4V29c0-1.9-1.5-3.4-3.4-3.4H41.8c-1.9 0-3.4 1.5-3.4 3.4v49.4h55.1z"></path><path fill="#FFF" d="M89.5 78.4V44.6H78.1c-1.9 0-3.4-1.5-3.4-3.4V29.9H37.8c-1.9 0-3.4 1.5-3.4 3.4v45.1h55.1z"></path><path fill="#FFCC04" d="m79.3 65.9-1.5 4c-.5 1.2-1.6 2-2.9 2H53.1c-1.3 0-2.4-.8-2.9-2l-1.5-4c-.5-1.3-1.7-2.2-3.1-2.2H30.9c-1.9 0-3.4 1.5-3.4 3.4v28.8c0 3.5 2.9 6.4 6.4 6.4H94c3.5 0 6.4-2.9 6.4-6.4V67.1c0-1.9-1.5-3.4-3.4-3.4H82.5c-1.4 0-2.7.9-3.2 2.2z"></path><path fill="#CED4DF" d="m74.9 45.8-.1-.1.1.1z"></path><path fill="#22D2FC" d="M74.7 29.9v11.4c0 1.9 1.5 3.4 3.4 3.4h11.4L74.7 29.9z"></path><path fill="#FFF" d="M74.1 81.6H53.9c-2 0-3.7 1.6-3.7 3.7 0 2 1.6 3.7 3.7 3.7h20.2c2 0 3.7-1.6 3.7-3.7 0-2-1.7-3.7-3.7-3.7z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 1003 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 51 51" id="jpg"><circle cx="25.5" cy="25.5" r="24" fill="#FED000"></circle><path fill="#F39F03" d="M37.462 16.607v4.741a.924.924 0 0 1-.877.924v16.361c0 1.027-.84 1.867-1.867 1.867H18.282a1.866 1.866 0 0 1-1.867-1.867V22.272a.924.924 0 0 1-.877-.924v-4.741c0-.495.392-.906.877-.924v-1.316a1.86 1.86 0 0 1 1.867-1.867h16.436c1.027 0 1.867.83 1.867 1.867v1.316c.485.018.877.43.877.924z"></path><path fill="#FFF" d="M35.585 13.367v24.266c0 1.031-.836 1.867-1.867 1.867H17.282a1.867 1.867 0 0 1-1.867-1.867V13.367c0-1.031.836-1.867 1.867-1.867h16.436c1.03 0 1.867.836 1.867 1.867z" opacity=".96"></path><path fill="#33ACFE" d="M18.143 25.5h14.715v9.894H18.143z"></path><path fill="#273E56" d="M32.859 35.394h-7.622l3.959-4.357z"></path><path fill="#334861" d="M29.048 35.394H18.143l5.664-7.357z"></path><circle cx="27.697" cy="28.037" r="1.094" fill="#FED000"></circle><path fill="#EB4B33" d="M35.462 21.28H15.538a1 1 0 0 1-1-1v-4.604a1 1 0 0 1 1-1h19.924a1 1 0 0 1 1 1v4.605a1 1 0 0 1-1 1z"></path><path fill="#FFF" d="M22.511 18.797c0 .57-.155 1.499-1.475 1.499-.737 0-1.456-.403-1.456-1.37v-.384h.88v.199c0 .427.105.737.564.737.514 0 .514-.409.514-.725v-2.987h.973v3.03zm.857-3.031h1.996c1.109 0 1.53.7 1.53 1.42 0 .718-.421 1.418-1.53 1.418H24.34v1.587h-.973v-4.425zm.973 2.082h.756c.446 0 .855-.099.855-.663 0-.564-.409-.663-.855-.663h-.756v1.326zm6.36 1.84a1.49 1.49 0 0 1-1.214.608c-1.364 0-2.176-1.023-2.176-2.299 0-1.314.812-2.336 2.176-2.336.905 0 1.766.552 1.865 1.561h-.93c-.117-.496-.47-.743-.935-.743-.874 0-1.202.743-1.202 1.518 0 .738.328 1.48 1.202 1.48.638 0 .997-.334 1.053-.953h-.98V17.8h1.86v2.392h-.62l-.099-.502z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" viewBox="0 0 512 512" id="mp4-file"><circle cx="256" cy="256" r="256" fill="#8ABE4F"></circle><path fill="#7BA840" d="M511.9 262.5 346.6 96.8c-1.1-1.1-3.1-1.1-4.3 0l-37.4 43.4c-.6.6-.8 1.2-.7 1.9l-3.4-6.1H159.2c-13.1 0-23.7 10.6-23.7 23.7v145.6l7.9 5.9h-16.2v66.6l8.3 7.9v6.6c0 7.6 3.5 14.3 9 18.6.7.9 58.1 58.3 100.6 100.9 3.6.1 7.2.2 10.8.2 139.3 0 252.5-111.1 256-249.5z"></path><g fill="#FFF"><path d="M169.1 193.7h145.4V206H169.1zM169.1 213.5h145.4v12.3H169.1zM169.1 233.4h145.4v12.3H169.1zM169.1 253.3h145.4v12.3H169.1zM169.1 273.1H282v12.3H169.1zM384.1 140.2l-37.4-43.4c-1.1-1.1-3.1-1.1-4.3 0L305 140.2c-1.7 1.6-.4 4.3 2.1 4.3h17.6v34h39.8v-34h17.6c2.3 0 3.6-2.6 2-4.3zM324.6 184.7h39.8v15.5h-39.8zM324.6 212c0 1.4 1.3 2.6 2.9 2.6h34c1.6 0 2.9-1.1 2.9-2.6v-5.7h-39.8v5.7z"></path><path d="M339.7 389.3c0 10.1-8.2 18.3-18.3 18.3H162.2c-10.1 0-18.3-8.2-18.3-18.3v-5.6h-8.4v8.6c0 13.1 10.6 23.7 23.7 23.7h165.2c13.1 0 23.7-10.6 23.7-23.7V220.4h-8.4v168.9zM143.9 162.7c0-10.1 8.2-18.3 18.3-18.3h136.4c-.9-2.8-.2-6 1.9-8.2l.2-.3H159.2c-13.1 0-23.7 10.6-23.7 23.7v145.6h8.4V162.7z"></path><path d="M313.2 344.5c0-18.4-14.9-33.3-33.3-33.3H127.2v66.6h152.7c18.4 0 33.3-14.9 33.3-33.3zm-109 19.2h-6.4v-27.6h-.2L187 363.7h-4.4l-10.8-28.1-.2.1v28.1h-6.4v-38.4h8.4l11 29.5h.2l11.1-29.5h8.2v38.3zm34.4-17.8c-2.4 2.2-5.7 3.3-10 3.3h-8.3v14.6h-6.4v-38.4h14.7c4.2 0 7.6 1.1 10 3.3 2.4 2.2 3.6 5.1 3.6 8.6s-1.2 6.4-3.6 8.6zm36.5 9.3h-4.9v8.5h-6.4v-8.5h-16.1l-.2-3.9 16-26h6.6V350h4.9v5.2z"></path><path d="m263.1 335.8-9.2 14.2h9.9v-15.7h-.1zM228.6 330.4h-8.3V344h8.3c2.4 0 4.2-.6 5.4-1.9 1.2-1.3 1.8-2.9 1.8-4.8s-.6-3.6-1.8-4.9c-1.2-1.3-3-2-5.4-2z"></path></g></svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 90 90" viewBox="0 0 90 90" id="pdf"><circle cx="45" cy="45" r="44.5" fill="#84D2ED"></circle><polygon fill="#EFC41C" stroke="#010101" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="1.978" points="35.6 18.8 35.6 31.9 22.5 31.9 22.5 71.2 62.8 71.2 62.8 18.8"></polygon><polygon fill="#8CC749" stroke="#010101" stroke-miterlimit="10" stroke-width="1.978" points="22.5 31.9 22.5 31.9 22.5 31.9"></polygon><polygon fill="#EB665F" stroke="#010101" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="1.978" points="35.6 18.8 22.5 31.9 22.5 31.9 35.6 31.9"></polygon><rect width="35.9" height="15.7" x="31.6" y="40.2" fill="#F2DFD5" stroke="#010101" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="1.978"></rect><path fill="#010101" d="M43 44c.7.6 1 1.5 1 2.7 0 1.2-.4 2.1-1.1 2.7-.7.6-1.8.9-3.3.9h-1.3v2.8h-2.2v-9.9h3.5C41.2 43.1 42.3 43.4 43 44zM41.4 47.9c.3-.3.4-.7.4-1.3 0-.6-.2-1-.5-1.2C41 45.2 40.4 45 39.7 45h-1.3v3.3h1.5C40.6 48.4 41.2 48.2 41.4 47.9zM53.4 44.4c.9.9 1.4 2.1 1.4 3.6 0 1.5-.5 2.8-1.4 3.7-.9.9-2.3 1.3-4.2 1.3h-3.4v-9.9h3.5C51.1 43.1 52.5 43.6 53.4 44.4zM51.8 50.3c.5-.5.8-1.3.8-2.2s-.3-1.7-.8-2.3c-.5-.5-1.4-.8-2.5-.8H48v6h1.4C50.5 51.1 51.2 50.9 51.8 50.3zM63.6 43.1v1.9H59v2.1h4.4v1.9H59v3.9h-2.2v-9.9H63.6z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="655.359" height="655.359" fill-rule="evenodd" clip-rule="evenodd" image-rendering="optimizeQuality" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" viewBox="0 0 6.827 6.827" id="png-file"><circle cx="3.413" cy="3.413" r="3.413" fill="#42a5f5"></circle><path fill="#fffffe" d="M1.744 4.074h.27V1.75a.164.164 0 0 1 .164-.164H4.3l.023.022.544.545.023.023v1.898h.191a.198.198 0 0 1 .198.199v.77a.198.198 0 0 1-.198.198H1.744a.198.198 0 0 1-.198-.199v-.769a.198.198 0 0 1 .198-.199zm.425 0h2.567V2.24l-.004-.004h-.498v-.495H2.178a.009.009 0 0 0-.007.003.009.009 0 0 0-.002.006v2.324zm.389-.7h1.789v.156h-1.79v-.156zm0-.544h1.789v.156h-1.79V2.83zm.07 2.094V4.37h.179c.068 0 .112.003.132.009a.145.145 0 0 1 .08.054.172.172 0 0 1 .032.107.18.18 0 0 1-.018.086.152.152 0 0 1-.047.055.162.162 0 0 1-.058.026.637.637 0 0 1-.116.008h-.073v.209h-.111zm.111-.46v.157H2.8a.29.29 0 0 0 .089-.009.074.074 0 0 0 .034-.027.075.075 0 0 0 .013-.043.072.072 0 0 0-.018-.05.077.077 0 0 0-.044-.024.532.532 0 0 0-.08-.004h-.055zm.405.46V4.37h.109l.226.37v-.37h.104v.554h-.112l-.223-.361v.36h-.104zm.814-.204v-.093H4.2v.22a.372.372 0 0 1-.237.086.304.304 0 0 1-.15-.036.232.232 0 0 1-.098-.105.337.337 0 0 1-.032-.147.32.32 0 0 1 .036-.154.244.244 0 0 1 .106-.102.285.285 0 0 1 .132-.028.26.26 0 0 1 .161.043.195.195 0 0 1 .075.12l-.111.02a.118.118 0 0 0-.044-.064.133.133 0 0 0-.08-.024.152.152 0 0 0-.117.047c-.029.03-.043.077-.043.138 0 .065.014.114.044.147.029.033.067.05.114.05a.194.194 0 0 0 .07-.014.244.244 0 0 0 .061-.034v-.07h-.128z"></path><path fill="none" d="M1.547 1.547H5.28V5.28H1.547z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -342,6 +342,7 @@ export default function Login() {
|
|||||||
imgSrc={appleLogo}
|
imgSrc={appleLogo}
|
||||||
brand="Apple"
|
brand="Apple"
|
||||||
isAnchor={true}
|
isAnchor={true}
|
||||||
|
style={{visibility: 'hidden'}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="sm:flex sm:justify-between sm:items-center sm:space-x-2">
|
<div className="sm:flex sm:justify-between sm:items-center sm:space-x-2">
|
||||||
@@ -446,7 +447,7 @@ export default function Login() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const BrandBtn = ({ link, imgSrc, brand, onClick, isAnchor = false }) => {
|
const BrandBtn = ({ link, imgSrc, brand, onClick, isAnchor = false, style = {visibility: 'visible' } }) => {
|
||||||
// const doGoogle = async () => {
|
// const doGoogle = async () => {
|
||||||
// alert("start google");
|
// alert("start google");
|
||||||
// };
|
// };
|
||||||
@@ -466,7 +467,7 @@ const BrandBtn = ({ link, imgSrc, brand, onClick, isAnchor = false }) => {
|
|||||||
// alert("start facebook");
|
// alert("start facebook");
|
||||||
// };
|
// };
|
||||||
return (
|
return (
|
||||||
<div className="w-full sm:w-1/2 flex justify-center bottomMargin">
|
<div className="w-full sm:w-1/2 flex justify-center bottomMargin" style={style}>
|
||||||
{isAnchor ? (
|
{isAnchor ? (
|
||||||
<a
|
<a
|
||||||
href={link}
|
href={link}
|
||||||
|
|||||||
@@ -35,7 +35,11 @@ export default function ActiveJobMessage({ activeJobMesList }) {
|
|||||||
<td>
|
<td>
|
||||||
<div className={`msg_box ${item.who}`}>
|
<div className={`msg_box ${item.who}`}>
|
||||||
<div className="msg_header">{item.msg_date} {item.msg_firstname}</div>
|
<div className="msg_header">{item.msg_date} {item.msg_firstname}</div>
|
||||||
|
{item.msg_type == 'FILE' ?
|
||||||
|
<a href='' className="p-2" dangerouslySetInnerHTML={{__html: item.message}}></a>
|
||||||
|
:
|
||||||
<span className="p-2" dangerouslySetInnerHTML={{__html: item.message}}></span>
|
<span className="p-2" dangerouslySetInnerHTML={{__html: item.message}}></span>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import React, { useEffect, useState, useRef } from "react";
|
import React, { useEffect, useRef, useState } from "react";
|
||||||
import { useSelector } from "react-redux";
|
import { useSelector } from "react-redux";
|
||||||
import Layout from "../Partials/Layout";
|
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import ActiveJobMessage from "./ActiveJobMessage";
|
|
||||||
import LoadingSpinner from "../Spinners/LoadingSpinner";
|
|
||||||
import CountDown from "../Helpers/CountDown";
|
|
||||||
import IndexJobActions from "./JobActions/IndexJobActions";
|
|
||||||
import ModalCom from "../Helpers/ModalCom";
|
|
||||||
import { useReactToPrint } from "react-to-print";
|
import { useReactToPrint } from "react-to-print";
|
||||||
|
import CountDown from "../Helpers/CountDown";
|
||||||
|
import ModalCom from "../Helpers/ModalCom";
|
||||||
|
import Layout from "../Partials/Layout";
|
||||||
|
import LoadingSpinner from "../Spinners/LoadingSpinner";
|
||||||
|
import ActiveJobMessage from "./ActiveJobMessage";
|
||||||
|
import IndexJobActions from "./JobActions/IndexJobActions";
|
||||||
|
|
||||||
import usersService from "../../services/UsersService";
|
import usersService from "../../services/UsersService";
|
||||||
|
|
||||||
@@ -259,14 +259,17 @@ function ActiveJobs(props) {
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
className="min-w-[45px] h-auto text-[#374557] border border-sky-blue p-1 rounded-full"
|
className="min-w-[45px] h-auto text-[#374557] border border-sky-blue p-1 rounded-full"
|
||||||
onClick={() =>{
|
onClick={() => {
|
||||||
if(props.details.pathname == '/manage-family'){
|
if (props.details.pathname == "/manage-family") {
|
||||||
navigate(props.details.pathname, {state: { ...props.details.accountDetails }}, { replace: true })
|
navigate(
|
||||||
}else{
|
props.details.pathname,
|
||||||
navigate(props.details.pathname, { replace: true })
|
{ state: { ...props.details.accountDetails } },
|
||||||
}
|
{ replace: true }
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
navigate(props.details.pathname, { replace: true });
|
||||||
}
|
}
|
||||||
}
|
}}
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
@@ -367,15 +370,17 @@ function ActiveJobs(props) {
|
|||||||
{/* TEXTAREA SECTION */}
|
{/* TEXTAREA SECTION */}
|
||||||
<div className="mt-5">
|
<div className="mt-5">
|
||||||
<div className="">
|
<div className="">
|
||||||
<div
|
<div
|
||||||
className="pl-7 my-2 flex items-center border-b border-slate-300 gap-3"
|
className="pl-7 my-2 flex items-center border-b border-slate-300 gap-3"
|
||||||
// className='ml-7 flex justify-start items-center gap-3'
|
// className='ml-7 flex justify-start items-center gap-3'
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
name="message"
|
name="message"
|
||||||
onClick={(e) => setTab(e.target.name)}
|
onClick={(e) => setTab(e.target.name)}
|
||||||
className={`px-4 py-1 rounded-t-2xl ${
|
className={`px-4 py-1 rounded-t-2xl ${
|
||||||
tab == "message" ? "bg-[#4687ba] border-[2px] border-[#4687ba] text-white" : "bg-white text-[#000] border-t-[2px]"
|
tab == "message"
|
||||||
|
? "bg-[#4687ba] border-[2px] border-[#4687ba] text-white"
|
||||||
|
: "bg-white text-[#000] border-t-[2px]"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
Send Message
|
Send Message
|
||||||
@@ -384,7 +389,9 @@ function ActiveJobs(props) {
|
|||||||
name="files"
|
name="files"
|
||||||
onClick={(e) => setTab(e.target.name)}
|
onClick={(e) => setTab(e.target.name)}
|
||||||
className={`px-4 py-1 rounded-t-2xl ${
|
className={`px-4 py-1 rounded-t-2xl ${
|
||||||
tab == "files" ? "bg-[#4687ba] border-[2px] border-[#4687ba] text-white" : "bg-white text-[#000] border-t-[2px]"
|
tab == "files"
|
||||||
|
? "bg-[#4687ba] border-[2px] border-[#4687ba] text-white"
|
||||||
|
: "bg-white text-[#000] border-t-[2px]"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
Send Files
|
Send Files
|
||||||
@@ -471,7 +478,7 @@ function ActiveJobs(props) {
|
|||||||
<button
|
<button
|
||||||
onClick={sendFile}
|
onClick={sendFile}
|
||||||
type="button"
|
type="button"
|
||||||
className='btn-gradient text-base tracking-wide px-4 py-2 rounded-full text-white cursor-pointer flex justify-center items-center'
|
className="btn-gradient text-base tracking-wide px-4 py-2 rounded-full text-white cursor-pointer flex justify-center items-center"
|
||||||
>
|
>
|
||||||
{requestStatus.loading ? (
|
{requestStatus.loading ? (
|
||||||
<LoadingSpinner size="6" color="sky-blue" />
|
<LoadingSpinner size="6" color="sky-blue" />
|
||||||
@@ -495,7 +502,7 @@ function ActiveJobs(props) {
|
|||||||
<button
|
<button
|
||||||
onClick={sendTaskMessage}
|
onClick={sendTaskMessage}
|
||||||
type="button"
|
type="button"
|
||||||
className='btn-gradient text-base tracking-wide px-4 py-2 rounded-full text-white cursor-pointer'
|
className="btn-gradient text-base tracking-wide px-4 py-2 rounded-full text-white cursor-pointer"
|
||||||
>
|
>
|
||||||
{requestStatus.loading ? (
|
{requestStatus.loading ? (
|
||||||
<LoadingSpinner size="6" color="sky-blue" />
|
<LoadingSpinner size="6" color="sky-blue" />
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { Link } from "react-router-dom";
|
|
||||||
// import authProfilePic from "../../assets/images/auth-profile-picture.png";
|
// import authProfilePic from "../../assets/images/auth-profile-picture.png";
|
||||||
// import profileBanner from "../../assets/images/profile-cover.png";
|
// import profileBanner from "../../assets/images/profile-cover.png";
|
||||||
// import collections from "../../data/collectionplan_data.json"; Should this be cleaned off?
|
// import collections from "../../data/collectionplan_data.json"; Should this be cleaned off?
|
||||||
// import marketPlace from "../../data/marketplace_data.json";
|
// import marketPlace from "../../data/marketplace_data.json";
|
||||||
|
import { useSelector } from "react-redux";
|
||||||
import LoadingSpinner from "../../components/Spinners/LoadingSpinner";
|
import LoadingSpinner from "../../components/Spinners/LoadingSpinner";
|
||||||
import products from "../../data/product_data.json";
|
import products from "../../data/product_data.json";
|
||||||
|
import usersService from "../../services/UsersService";
|
||||||
import Layout from "../Partials/Layout";
|
import Layout from "../Partials/Layout";
|
||||||
import {
|
import {
|
||||||
ActivitiesTab, BlogTab,
|
ActivitiesTab,
|
||||||
QuestionsTab,
|
BlogTab,
|
||||||
CollectionTab,
|
CollectionTab,
|
||||||
CreatedTab,
|
|
||||||
HiddenProductsTab,
|
HiddenProductsTab,
|
||||||
MyUploadedFiles,
|
MyUploadedFiles,
|
||||||
OnSaleTab,
|
|
||||||
OwnTab,
|
OwnTab,
|
||||||
|
QuestionsTab,
|
||||||
} from "./tabs";
|
} from "./tabs";
|
||||||
//import MyUploadedFiles from "./tabs/MyUploadedFiles";
|
//import MyUploadedFiles from "./tabs/MyUploadedFiles";
|
||||||
|
|
||||||
@@ -24,16 +24,61 @@ export default function Resources(props) {
|
|||||||
const ownProducts = products.datas;
|
const ownProducts = products.datas;
|
||||||
// Resource Props
|
// Resource Props
|
||||||
const __resources = props.MyResourceData;
|
const __resources = props.MyResourceData;
|
||||||
//debugger;
|
//debugger;
|
||||||
// Collection Items
|
// Collection Items
|
||||||
const CreatedSell = __resources?.marketdata?.data;
|
const CreatedSell = __resources?.marketdata?.data;
|
||||||
const tab_categories = __resources?.tab_categories?.data;
|
const tab_categories = __resources?.tab_categories?.data;
|
||||||
const collectionProducts = __resources?.collectiondata?.data;
|
const collectionProducts = __resources?.collectiondata?.data;
|
||||||
const onSaleProducts = __resources?.marketdata?.data;
|
const onSaleProducts = __resources?.marketdata?.data;
|
||||||
const CreatedBits = __resources?.productdata?.datas;
|
const CreatedBits = __resources?.productdata?.datas;
|
||||||
const blogItems = __resources?.blogdata?.payload;
|
const blogItems = __resources?.blogdata?.payload;
|
||||||
|
|
||||||
const [tab, setTab] = useState(tab_categories ? tab_categories[0]?.name : "");
|
// My Items Data
|
||||||
|
const [uploadedFiles, setUploadedFiles] = useState({
|
||||||
|
loading: false,
|
||||||
|
msg: "",
|
||||||
|
data: null,
|
||||||
|
});
|
||||||
|
const { uploadsTable } = useSelector((state) => state.tableReload);
|
||||||
|
|
||||||
|
const apiCall = new usersService();
|
||||||
|
|
||||||
|
const getUploadedFiles = async () => {
|
||||||
|
setUploadedFiles((prev) => ({ ...prev, loading: true }));
|
||||||
|
|
||||||
|
let res;
|
||||||
|
|
||||||
|
try {
|
||||||
|
res = await apiCall.getUploadedList();
|
||||||
|
res = res.data;
|
||||||
|
if (res?.internal_return < 0) {
|
||||||
|
setUploadedFiles((prev) => ({
|
||||||
|
...prev,
|
||||||
|
loading: false,
|
||||||
|
msg: "something went wrong",
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
setUploadedFiles((prev) => ({
|
||||||
|
...prev,
|
||||||
|
loading: false,
|
||||||
|
msg: "success",
|
||||||
|
data: res?.result_list,
|
||||||
|
}));
|
||||||
|
} catch (error) {
|
||||||
|
setUploadedFiles((prev) => ({
|
||||||
|
...prev,
|
||||||
|
loading: false,
|
||||||
|
msg: "An error occurred",
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getUploadedFiles();
|
||||||
|
}, [uploadsTable]);
|
||||||
|
|
||||||
|
// const [tab, setTab] = useState(tab_categories ? tab_categories[0]?.name : "");
|
||||||
|
const [tab, setTab] = useState(props.activeTab? props.activeTab : tab_categories ? tab_categories[0]?.name : "");
|
||||||
|
|
||||||
const tabHandler = (value) => {
|
const tabHandler = (value) => {
|
||||||
setTab(value);
|
setTab(value);
|
||||||
@@ -44,7 +89,7 @@ export default function Resources(props) {
|
|||||||
blog: <BlogTab blogdata={blogItems} />,
|
blog: <BlogTab blogdata={blogItems} />,
|
||||||
onsale: <QuestionsTab products={onSaleProducts} />,
|
onsale: <QuestionsTab products={onSaleProducts} />,
|
||||||
owned: <OwnTab products={ownProducts} />,
|
owned: <OwnTab products={ownProducts} />,
|
||||||
created: <MyUploadedFiles marketProducts={CreatedSell} mainProducts={CreatedBits} />,
|
created: <MyUploadedFiles uploadedFiles={uploadedFiles} />,
|
||||||
hidden: (
|
hidden: (
|
||||||
<HiddenProductsTab
|
<HiddenProductsTab
|
||||||
marketProducts={CreatedSell}
|
marketProducts={CreatedSell}
|
||||||
@@ -55,26 +100,30 @@ export default function Resources(props) {
|
|||||||
activity: <ActivitiesTab />,
|
activity: <ActivitiesTab />,
|
||||||
};
|
};
|
||||||
|
|
||||||
const defaultTabComponent = <BlogTab blogdata={blogItems} />;
|
// const defaultTabComponent = <BlogTab blogdata={blogItems} />;
|
||||||
|
|
||||||
const selectedTabComponent = tabComponents[tab] || defaultTabComponent;
|
// const selectedTabComponent = tabComponents[tab] || defaultTabComponent;
|
||||||
|
|
||||||
|
const defaultTabComponent = props.activeTab ? tabComponents[props.activeTab] : <BlogTab blogdata={blogItems} />;
|
||||||
|
const selectedTabComponent = tabComponents[tab] || defaultTabComponent;
|
||||||
|
|
||||||
// Tab Item Component
|
// Tab Item Component
|
||||||
const TabItem = ({ tabValue, isActive }) => {
|
const TabItem = ({ tabValue, isActive }) => {
|
||||||
let countNumber = (name) => { // FUNCTION TO DETERMINE THE COUNT NUMBER
|
let countNumber = (name) => {
|
||||||
if(name == 'blog'){
|
// FUNCTION TO DETERMINE THE COUNT NUMBER
|
||||||
return blogItems?.blogdata?.length
|
if (name == "blog") {
|
||||||
}else if(name == 'onsale'){
|
return blogItems?.blogdata?.length;
|
||||||
return onSaleProducts?.length
|
} else if (name == "onsale") {
|
||||||
|
return onSaleProducts?.length;
|
||||||
// return null
|
// return null
|
||||||
}else if(name == 'owned'){
|
} else if (name == "owned") {
|
||||||
return ownProducts?.length
|
return ownProducts?.length;
|
||||||
}else if(name == 'created'){
|
} else if (name == "created") {
|
||||||
return CreatedSell?.length + CreatedBits?.length
|
return uploadedFiles?.data?.length;
|
||||||
}else{
|
} else {
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
return (
|
return (
|
||||||
<li
|
<li
|
||||||
className={`relative group inline`}
|
className={`relative group inline`}
|
||||||
@@ -89,17 +138,17 @@ export default function Resources(props) {
|
|||||||
>
|
>
|
||||||
{tabValue.content}
|
{tabValue.content}
|
||||||
</span>
|
</span>
|
||||||
{tabValue.name != 'onsale' &&
|
{tabValue.name != "onsale" && (
|
||||||
<span
|
<span
|
||||||
className={`w-5 h-5 group-hover:bg-pink group-hover:text-white text-[10px] rounded-full absolute -top-2 -right-5 flex justify-center items-center ${
|
className={`w-5 h-5 group-hover:bg-pink group-hover:text-white text-[10px] rounded-full absolute -top-2 -right-5 flex justify-center items-center ${
|
||||||
isActive
|
isActive
|
||||||
? "text-white bg-pink"
|
? "text-white bg-pink"
|
||||||
: "text-thin-light-gray bg-[#F2B8FD]"
|
: "text-thin-light-gray bg-[#F2B8FD]"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
{countNumber(tabValue.name)}
|
{countNumber(tabValue.name)}
|
||||||
</span>
|
</span>
|
||||||
}
|
)}
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -136,14 +185,6 @@ export default function Resources(props) {
|
|||||||
<div className="tab-items">
|
<div className="tab-items">
|
||||||
<TabList tabCategories={tab_categories} />
|
<TabList tabCategories={tab_categories} />
|
||||||
</div>
|
</div>
|
||||||
{/* <div style={{ transform: "translateY(-22px)" }}>
|
|
||||||
<Link
|
|
||||||
to="/my-uploads"
|
|
||||||
className="btn-gradient lg:flex hidden w-[153px] h-[46px] rounded-full text-white justify-center items-center"
|
|
||||||
>
|
|
||||||
Add My Item
|
|
||||||
</Link>
|
|
||||||
</div> */}
|
|
||||||
</div>
|
</div>
|
||||||
<div className="hidden lg:block w-full h-[1px] bg-[#DCD5FE] dark:bg-[#5356fb29] absolute top-[42px] left-0"></div>
|
<div className="hidden lg:block w-full h-[1px] bg-[#DCD5FE] dark:bg-[#5356fb29] absolute top-[42px] left-0"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,278 +1,162 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import dataImage1 from "../../../assets/images/data-table-user-1.png";
|
|
||||||
import dataImage2 from "../../../assets/images/data-table-user-2.png";
|
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
// import dataImage3 from "../../../assets/images/data-table-user-3.png";
|
import defaultImg from "../../../assets/images/myfiles/default.svg";
|
||||||
// import dataImage4 from "../../../assets/images/data-table-user-4.png";
|
import localImgLoad from "../../../lib/localImgLoad";
|
||||||
// import SelectBox from "../Helpers/SelectBox";
|
import { PaginatedList, handlePagingFunc } from "../../Pagination";
|
||||||
|
|
||||||
export default function MyUploadedFiles({ className }) {
|
export default function MyUploadedFiles({ uploadedFiles }) {
|
||||||
const filterCategories = ["All Categories", "Explore", "Featured"];
|
const [currentPage, setCurrentPage] = useState(0);
|
||||||
const [selectedCategory, setCategory] = useState(filterCategories[0]);
|
const indexOfFirstItem = Number(currentPage);
|
||||||
return (
|
const indexOfLastItem =
|
||||||
<>
|
Number(indexOfFirstItem) + Number(process.env.REACT_APP_ITEM_PER_PAGE);
|
||||||
<div className="mb-4 w-full flex justify-end item-center">
|
const currentFiles = uploadedFiles?.data?.slice(
|
||||||
<Link
|
indexOfFirstItem,
|
||||||
to="/my-uploads"
|
indexOfLastItem
|
||||||
className="btn-gradient lg:flex hidden w-[153px] h-[46px] rounded-full text-white justify-center items-center"
|
);
|
||||||
>
|
|
||||||
Add My Item
|
const handlePagination = (e) => {
|
||||||
</Link>
|
handlePagingFunc(e, setCurrentPage);
|
||||||
</div>
|
};
|
||||||
<div
|
return (
|
||||||
className={`update-table w-full p-8 bg-white dark:bg-dark-white overflow-hidden rounded-2xl section-shadow relative min-h-[520px] ${
|
<>
|
||||||
className || ""
|
<div className="mb-4 w-full flex justify-end item-center">
|
||||||
}`}
|
<Link
|
||||||
|
to="/my-uploads"
|
||||||
|
className="btn-gradient lg:flex hidden w-[153px] h-[46px] rounded-full text-white justify-center items-center"
|
||||||
>
|
>
|
||||||
<div className="header w-full sm:flex justify-between items-center mb-5">
|
Add My Item
|
||||||
<div className="flex space-x-2 items-center mb-2 sm:mb-0">
|
</Link>
|
||||||
<h1 className="text-xl font-bold text-dark-gray dark:text-white tracking-wide">
|
</div>
|
||||||
My Uploads
|
<div
|
||||||
</h1>
|
className={`update-table w-full p-8 bg-white dark:bg-dark-white overflow-hidden rounded-2xl section-shadow relative min-h-[520px]`}
|
||||||
|
>
|
||||||
</div>
|
<div className="header w-full sm:flex justify-between items-center mb-5">
|
||||||
</div>
|
<div className="flex space-x-2 items-center mb-2 sm:mb-0">
|
||||||
<div className="relative w-full overflow-x-auto sm:rounded-lg">
|
<h1 className="text-xl font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400">
|
My Uploads
|
||||||
<tbody>
|
</h1>
|
||||||
{/* table heading */}
|
</div>
|
||||||
{/*<tr className="text-base text-thin-light-gray whitespace-nowrap px-2 border-b dark:border-[#5356fb29] default-border-b dark:border-[#5356fb29] ottom ">*/}
|
|
||||||
{/* <td className="py-4 w-[300px] block whitespace-nowrap">*/}
|
|
||||||
{/* All Product*/}
|
|
||||||
{/* </td>*/}
|
|
||||||
{/* <td className="py-4 whitespace-nowrap text-center">.</td>*/}
|
|
||||||
{/* <td className="py-4 whitespace-nowrap text-center"></td>*/}
|
|
||||||
|
|
||||||
{/* <td className="py-4 whitespace-nowrap text-right"></td>*/}
|
|
||||||
{/*</tr>*/}
|
|
||||||
<tr className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50">
|
|
||||||
<td className=" py-4">
|
|
||||||
<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={dataImage1}
|
|
||||||
alt="data"
|
|
||||||
className="w-full h-full"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="flex flex-col">
|
|
||||||
<h1 className="font-bold text-xl text-dark-gray dark:text-white">
|
|
||||||
Mullican Computer Joy
|
|
||||||
</h1>
|
|
||||||
<span className="text-sm text-thin-light-gray">
|
|
||||||
Owned by <span className="text-purple">Xoeyam</span>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td className="text-center py-4 px-2">
|
|
||||||
<div className="flex space-x-1 items-center justify-center">
|
|
||||||
<span>
|
|
||||||
<svg
|
|
||||||
width="18"
|
|
||||||
height="18"
|
|
||||||
viewBox="0 0 18 18"
|
|
||||||
fill="none"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M9 18C13.9706 18 18 13.9706 18 9C18 4.02944 13.9706 0 9 0C4.02944 0 0 4.02944 0 9C0 13.9706 4.02944 18 9 18Z"
|
|
||||||
fill="#627EEA"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28125 2.25V7.23937L13.4983 9.12375L9.28125 2.25Z"
|
|
||||||
fill="white"
|
|
||||||
fillOpacity="0.602"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28012 2.25L5.0625 9.12375L9.28012 7.23937V2.25Z"
|
|
||||||
fill="white"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28125 12.3582V15.7483L13.5011 9.91016L9.28125 12.3582Z"
|
|
||||||
fill="white"
|
|
||||||
fillOpacity="0.602"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28012 15.7483V12.3576L5.0625 9.91016L9.28012 15.7483Z"
|
|
||||||
fill="white"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28125 11.572L13.4983 9.12348L9.28125 7.24023V11.572Z"
|
|
||||||
fill="white"
|
|
||||||
fillOpacity="0.2"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M5.0625 9.12348L9.28012 11.572V7.24023L5.0625 9.12348Z"
|
|
||||||
fill="white"
|
|
||||||
fillOpacity="0.602"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</span>
|
|
||||||
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap">
|
|
||||||
7473 ETH
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td className="text-center py-4 px-2">
|
|
||||||
<div className="flex space-x-1 items-center justify-center">
|
|
||||||
<span>
|
|
||||||
<svg
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
viewBox="0 0 16 16"
|
|
||||||
fill="none"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M7.55225 0C7.8457 0 8.13914 0 8.43205 0C8.44829 0.026534 8.47537 0.0151623 8.49756 0.0162453C9.28966 0.0649812 10.0606 0.220936 10.8013 0.505229C12.7699 1.26172 14.2323 2.58354 15.183 4.46638C15.5999 5.29218 15.8506 6.16997 15.9561 7.08891C15.9691 7.201 15.9621 7.3158 16 7.42465C16 7.80858 16 8.19251 16 8.57698C15.9778 8.5916 15.9854 8.61543 15.9838 8.63546C15.9475 9.10387 15.8744 9.56686 15.7515 10.0206C15.1787 12.1342 13.9524 13.7603 12.0818 14.8942C11.1516 15.4579 10.1397 15.8002 9.06064 15.941C8.89497 15.9626 8.72875 15.98 8.56308 15.9995C8.17217 15.9995 7.78127 15.9995 7.39036 16C7.3752 15.9789 7.35138 15.9865 7.33135 15.9848C6.96752 15.9545 6.60639 15.9009 6.25068 15.8197C4.77639 15.4829 3.48998 14.793 2.4131 13.7311C0.998917 12.3372 0.204656 10.6461 0.0270709 8.66687C0.0205739 8.59431 0.033568 8.51904 0 8.44972C0 8.15081 0 7.85244 0 7.55352C0.0265295 7.53403 0.0151597 7.50479 0.016784 7.47988C0.0730915 6.64162 0.251218 5.83044 0.564158 5.05066C1.10179 3.71043 1.93774 2.59058 3.07634 1.70142C4.33839 0.715876 5.77098 0.159745 7.36762 0.0270755C7.4288 0.0216604 7.49432 0.0341151 7.55225 0ZM7.24635 9.86252C7.24635 10.2383 7.24526 10.6147 7.24743 10.9905C7.24797 11.0457 7.23389 11.0679 7.17596 11.0593C7.09691 11.0479 7.01678 11.0446 6.93774 11.0338C6.26746 10.9461 5.63563 10.7371 5.03952 10.4192C5.00379 10.4002 4.97834 10.3802 4.9621 10.4425C4.81375 11.0176 4.66324 11.5926 4.51164 12.1666C4.50027 12.2094 4.51272 12.2278 4.54954 12.2473C4.66486 12.3096 4.78235 12.3665 4.90309 12.4152C5.5961 12.6968 6.31998 12.8408 7.06497 12.8842C7.14131 12.8885 7.16134 12.9112 7.1608 12.9865C7.15701 13.4159 7.16026 13.8453 7.15809 14.2747C7.15755 14.3397 7.17488 14.3619 7.2431 14.3614C7.69085 14.3581 8.13914 14.3576 8.5869 14.3614C8.66432 14.3619 8.67731 14.3359 8.67731 14.2666C8.67461 13.8026 8.67677 13.3385 8.67461 12.8744C8.67407 12.8089 8.68544 12.7786 8.76015 12.765C9.09962 12.7049 9.4288 12.6058 9.74228 12.4607C10.3498 12.1802 10.8408 11.7703 11.1603 11.1724C11.4288 10.6699 11.51 10.1327 11.4618 9.56957C11.4158 9.03239 11.2366 8.55207 10.8787 8.14431C10.5506 7.77121 10.1402 7.51129 9.69843 7.29522C9.39145 7.14523 9.07363 7.02284 8.75041 6.91129C8.7098 6.89721 8.67407 6.88693 8.67407 6.82736C8.67623 6.14993 8.67569 5.4725 8.67461 4.79507C8.67461 4.75121 8.68489 4.73117 8.73308 4.73767C8.87547 4.75717 9.01895 4.77016 9.16134 4.79236C9.634 4.86493 10.0796 5.02467 10.5116 5.22395C10.5717 5.25157 10.5945 5.24886 10.6123 5.17684C10.7434 4.6467 10.8771 4.1171 11.0162 3.58913C11.0379 3.5079 11.0244 3.47541 10.948 3.44076C10.2799 3.13751 9.57282 3.01025 8.8457 2.97614C8.78018 2.97289 8.76123 2.95556 8.76178 2.88896C8.76503 2.50232 8.76232 2.11568 8.76448 1.72904C8.76503 1.66785 8.75041 1.64727 8.68489 1.64727C8.23173 1.64998 7.77802 1.64998 7.32485 1.64727C7.26151 1.64673 7.24418 1.66406 7.24418 1.72742C7.24689 2.1433 7.24256 2.55972 7.24797 2.9756C7.24905 3.06116 7.2209 3.08661 7.14239 3.10285C6.73579 3.18679 6.34651 3.32271 5.98646 3.53281C5.20628 3.98822 4.72117 4.64724 4.61938 5.5586C4.51597 6.48837 4.83812 7.2427 5.57661 7.81778C6.05739 8.19251 6.60639 8.43781 7.1738 8.64683C7.2274 8.66633 7.24743 8.68907 7.24689 8.7481C7.24472 9.12066 7.24635 9.49159 7.24635 9.86252Z"
|
|
||||||
fill="#59BE59"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M7.2452 9.86252C7.2452 9.49158 7.24358 9.12119 7.24683 8.75026C7.24737 8.69123 7.22734 8.66903 7.17374 8.64899C6.60687 8.43997 6.05787 8.19467 5.57655 7.81994C4.8386 7.24486 4.51591 6.49053 4.61933 5.56076C4.72057 4.6494 5.20568 3.99092 5.98641 3.53497C6.34645 3.32486 6.73519 3.18894 7.14233 3.10501C7.22084 3.08876 7.24899 3.06277 7.24791 2.97775C7.2425 2.56187 7.24683 2.14545 7.24412 1.72957C7.24358 1.66621 7.2609 1.64888 7.32479 1.64943C7.77796 1.65213 8.23167 1.65213 8.68483 1.64943C8.7498 1.64888 8.76442 1.66946 8.76442 1.73119C8.76171 2.11783 8.76496 2.50447 8.76171 2.89111C8.76117 2.95717 8.78012 2.97504 8.84563 2.97829C9.57276 3.01295 10.2793 3.13966 10.948 3.44291C11.0243 3.47757 11.0373 3.51006 11.0162 3.59128C10.877 4.11926 10.7433 4.64885 10.6123 5.17899C10.5944 5.25156 10.5717 5.25372 10.5116 5.2261C10.079 5.02683 9.63394 4.86708 9.16128 4.79452C9.01889 4.77286 8.87595 4.75932 8.73302 4.73983C8.68483 4.73333 8.67455 4.75337 8.67455 4.79723C8.67563 5.47466 8.67617 6.15209 8.674 6.82952C8.674 6.88908 8.70974 6.89937 8.75034 6.91345C9.07303 7.02446 9.39138 7.14684 9.69837 7.29738C10.1396 7.51344 10.5506 7.77283 10.8787 8.14647C11.2365 8.55369 11.4157 9.03455 11.4618 9.57173C11.51 10.1349 11.4287 10.6726 11.1602 11.1746C10.8408 11.7724 10.3497 12.1818 9.74222 12.4629C9.42874 12.608 9.09956 12.7071 8.76009 12.7672C8.68483 12.7802 8.674 12.811 8.67455 12.8766C8.67671 13.3406 8.67455 13.8047 8.67725 14.2688C8.67779 14.3381 8.66426 14.3646 8.58684 14.3636C8.13908 14.3598 7.69079 14.3608 7.24304 14.3636C7.17536 14.3641 7.15803 14.3424 7.15803 14.2769C7.1602 13.8475 7.15695 13.4181 7.16074 12.9887C7.16128 12.9128 7.14179 12.8906 7.06491 12.8863C6.31992 12.843 5.59658 12.699 4.90303 12.4174C4.78229 12.3681 4.66426 12.3112 4.54948 12.2495C4.51321 12.23 4.50075 12.2116 4.51158 12.1688C4.66318 11.5943 4.81369 11.0197 4.96204 10.4446C4.97829 10.3824 5.00373 10.4024 5.03947 10.4214C5.63557 10.7387 6.2674 10.9477 6.93768 11.036C7.01672 11.0463 7.09685 11.0501 7.1759 11.0614C7.23383 11.0695 7.24737 11.0479 7.24737 10.9927C7.24412 10.6147 7.2452 10.2383 7.2452 9.86252ZM8.68537 9.36325C8.67942 9.37245 8.67455 9.37678 8.67455 9.38112C8.674 9.83978 8.67401 10.2984 8.67292 10.7571C8.67292 10.8177 8.70216 10.7928 8.72598 10.7755C8.82452 10.7046 8.90736 10.619 8.96691 10.5123C9.17698 10.1333 9.05679 9.63725 8.68537 9.36325ZM7.23871 6.11147C7.23871 5.75354 7.23871 5.40589 7.23871 5.05174C6.92522 5.33982 6.92522 5.77249 7.23871 6.11147Z"
|
|
||||||
fill="#FEFEFE"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M8.68433 9.36328C9.05574 9.63729 9.17539 10.1333 8.96586 10.5118C8.90631 10.619 8.82347 10.7046 8.72493 10.775C8.70111 10.7918 8.67188 10.8172 8.67188 10.7566C8.67242 10.2979 8.67296 9.83927 8.6735 9.38061C8.67404 9.37682 8.67891 9.37249 8.68433 9.36328Z"
|
|
||||||
fill="#59BE59"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M7.23882 6.11149C6.92533 5.77305 6.92587 5.33984 7.23882 5.05176C7.23882 5.40591 7.23882 5.75355 7.23882 6.11149Z"
|
|
||||||
fill="#59BE59"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</span>
|
|
||||||
<span className="text-base text-dark-gray dark:text-white font-medium">
|
|
||||||
6392.99$
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td className="text-right py-4">
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
className="text-sm text-white bg-purple px-2.5 py-1.5 rounded-full"
|
|
||||||
>
|
|
||||||
Active
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50">
|
|
||||||
<td className=" py-4">
|
|
||||||
<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={dataImage2}
|
|
||||||
alt="data"
|
|
||||||
className="w-full h-full"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="flex flex-col">
|
|
||||||
<h1 className="font-bold text-xl text-dark-gray dark:text-white">
|
|
||||||
Mullican Computer Joy
|
|
||||||
</h1>
|
|
||||||
<span className="text-sm text-thin-light-gray">
|
|
||||||
Owned by <span className="text-purple">Xoeyam</span>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td className="text-center py-4 px-2">
|
|
||||||
<div className="flex space-x-1 items-center justify-center">
|
|
||||||
<span>
|
|
||||||
<svg
|
|
||||||
width="18"
|
|
||||||
height="18"
|
|
||||||
viewBox="0 0 18 18"
|
|
||||||
fill="none"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M9 18C13.9706 18 18 13.9706 18 9C18 4.02944 13.9706 0 9 0C4.02944 0 0 4.02944 0 9C0 13.9706 4.02944 18 9 18Z"
|
|
||||||
fill="#627EEA"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28125 2.25V7.23937L13.4983 9.12375L9.28125 2.25Z"
|
|
||||||
fill="white"
|
|
||||||
fillOpacity="0.602"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28012 2.25L5.0625 9.12375L9.28012 7.23937V2.25Z"
|
|
||||||
fill="white"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28125 12.3582V15.7483L13.5011 9.91016L9.28125 12.3582Z"
|
|
||||||
fill="white"
|
|
||||||
fillOpacity="0.602"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28012 15.7483V12.3576L5.0625 9.91016L9.28012 15.7483Z"
|
|
||||||
fill="white"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M9.28125 11.572L13.4983 9.12348L9.28125 7.24023V11.572Z"
|
|
||||||
fill="white"
|
|
||||||
fillOpacity="0.2"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M5.0625 9.12348L9.28012 11.572V7.24023L5.0625 9.12348Z"
|
|
||||||
fill="white"
|
|
||||||
fillOpacity="0.602"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</span>
|
|
||||||
<span className="text-base text-dark-gray dark:text-white font-medium whitespace-nowrap">
|
|
||||||
7473 ETH
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td className="text-center py-4 px-2">
|
|
||||||
<div className="flex space-x-1 items-center justify-center">
|
|
||||||
<span>
|
|
||||||
<svg
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
viewBox="0 0 16 16"
|
|
||||||
fill="none"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M7.55225 0C7.8457 0 8.13914 0 8.43205 0C8.44829 0.026534 8.47537 0.0151623 8.49756 0.0162453C9.28966 0.0649812 10.0606 0.220936 10.8013 0.505229C12.7699 1.26172 14.2323 2.58354 15.183 4.46638C15.5999 5.29218 15.8506 6.16997 15.9561 7.08891C15.9691 7.201 15.9621 7.3158 16 7.42465C16 7.80858 16 8.19251 16 8.57698C15.9778 8.5916 15.9854 8.61543 15.9838 8.63546C15.9475 9.10387 15.8744 9.56686 15.7515 10.0206C15.1787 12.1342 13.9524 13.7603 12.0818 14.8942C11.1516 15.4579 10.1397 15.8002 9.06064 15.941C8.89497 15.9626 8.72875 15.98 8.56308 15.9995C8.17217 15.9995 7.78127 15.9995 7.39036 16C7.3752 15.9789 7.35138 15.9865 7.33135 15.9848C6.96752 15.9545 6.60639 15.9009 6.25068 15.8197C4.77639 15.4829 3.48998 14.793 2.4131 13.7311C0.998917 12.3372 0.204656 10.6461 0.0270709 8.66687C0.0205739 8.59431 0.033568 8.51904 0 8.44972C0 8.15081 0 7.85244 0 7.55352C0.0265295 7.53403 0.0151597 7.50479 0.016784 7.47988C0.0730915 6.64162 0.251218 5.83044 0.564158 5.05066C1.10179 3.71043 1.93774 2.59058 3.07634 1.70142C4.33839 0.715876 5.77098 0.159745 7.36762 0.0270755C7.4288 0.0216604 7.49432 0.0341151 7.55225 0ZM7.24635 9.86252C7.24635 10.2383 7.24526 10.6147 7.24743 10.9905C7.24797 11.0457 7.23389 11.0679 7.17596 11.0593C7.09691 11.0479 7.01678 11.0446 6.93774 11.0338C6.26746 10.9461 5.63563 10.7371 5.03952 10.4192C5.00379 10.4002 4.97834 10.3802 4.9621 10.4425C4.81375 11.0176 4.66324 11.5926 4.51164 12.1666C4.50027 12.2094 4.51272 12.2278 4.54954 12.2473C4.66486 12.3096 4.78235 12.3665 4.90309 12.4152C5.5961 12.6968 6.31998 12.8408 7.06497 12.8842C7.14131 12.8885 7.16134 12.9112 7.1608 12.9865C7.15701 13.4159 7.16026 13.8453 7.15809 14.2747C7.15755 14.3397 7.17488 14.3619 7.2431 14.3614C7.69085 14.3581 8.13914 14.3576 8.5869 14.3614C8.66432 14.3619 8.67731 14.3359 8.67731 14.2666C8.67461 13.8026 8.67677 13.3385 8.67461 12.8744C8.67407 12.8089 8.68544 12.7786 8.76015 12.765C9.09962 12.7049 9.4288 12.6058 9.74228 12.4607C10.3498 12.1802 10.8408 11.7703 11.1603 11.1724C11.4288 10.6699 11.51 10.1327 11.4618 9.56957C11.4158 9.03239 11.2366 8.55207 10.8787 8.14431C10.5506 7.77121 10.1402 7.51129 9.69843 7.29522C9.39145 7.14523 9.07363 7.02284 8.75041 6.91129C8.7098 6.89721 8.67407 6.88693 8.67407 6.82736C8.67623 6.14993 8.67569 5.4725 8.67461 4.79507C8.67461 4.75121 8.68489 4.73117 8.73308 4.73767C8.87547 4.75717 9.01895 4.77016 9.16134 4.79236C9.634 4.86493 10.0796 5.02467 10.5116 5.22395C10.5717 5.25157 10.5945 5.24886 10.6123 5.17684C10.7434 4.6467 10.8771 4.1171 11.0162 3.58913C11.0379 3.5079 11.0244 3.47541 10.948 3.44076C10.2799 3.13751 9.57282 3.01025 8.8457 2.97614C8.78018 2.97289 8.76123 2.95556 8.76178 2.88896C8.76503 2.50232 8.76232 2.11568 8.76448 1.72904C8.76503 1.66785 8.75041 1.64727 8.68489 1.64727C8.23173 1.64998 7.77802 1.64998 7.32485 1.64727C7.26151 1.64673 7.24418 1.66406 7.24418 1.72742C7.24689 2.1433 7.24256 2.55972 7.24797 2.9756C7.24905 3.06116 7.2209 3.08661 7.14239 3.10285C6.73579 3.18679 6.34651 3.32271 5.98646 3.53281C5.20628 3.98822 4.72117 4.64724 4.61938 5.5586C4.51597 6.48837 4.83812 7.2427 5.57661 7.81778C6.05739 8.19251 6.60639 8.43781 7.1738 8.64683C7.2274 8.66633 7.24743 8.68907 7.24689 8.7481C7.24472 9.12066 7.24635 9.49159 7.24635 9.86252Z"
|
|
||||||
fill="#59BE59"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M7.2452 9.86252C7.2452 9.49158 7.24358 9.12119 7.24683 8.75026C7.24737 8.69123 7.22734 8.66903 7.17374 8.64899C6.60687 8.43997 6.05787 8.19467 5.57655 7.81994C4.8386 7.24486 4.51591 6.49053 4.61933 5.56076C4.72057 4.6494 5.20568 3.99092 5.98641 3.53497C6.34645 3.32486 6.73519 3.18894 7.14233 3.10501C7.22084 3.08876 7.24899 3.06277 7.24791 2.97775C7.2425 2.56187 7.24683 2.14545 7.24412 1.72957C7.24358 1.66621 7.2609 1.64888 7.32479 1.64943C7.77796 1.65213 8.23167 1.65213 8.68483 1.64943C8.7498 1.64888 8.76442 1.66946 8.76442 1.73119C8.76171 2.11783 8.76496 2.50447 8.76171 2.89111C8.76117 2.95717 8.78012 2.97504 8.84563 2.97829C9.57276 3.01295 10.2793 3.13966 10.948 3.44291C11.0243 3.47757 11.0373 3.51006 11.0162 3.59128C10.877 4.11926 10.7433 4.64885 10.6123 5.17899C10.5944 5.25156 10.5717 5.25372 10.5116 5.2261C10.079 5.02683 9.63394 4.86708 9.16128 4.79452C9.01889 4.77286 8.87595 4.75932 8.73302 4.73983C8.68483 4.73333 8.67455 4.75337 8.67455 4.79723C8.67563 5.47466 8.67617 6.15209 8.674 6.82952C8.674 6.88908 8.70974 6.89937 8.75034 6.91345C9.07303 7.02446 9.39138 7.14684 9.69837 7.29738C10.1396 7.51344 10.5506 7.77283 10.8787 8.14647C11.2365 8.55369 11.4157 9.03455 11.4618 9.57173C11.51 10.1349 11.4287 10.6726 11.1602 11.1746C10.8408 11.7724 10.3497 12.1818 9.74222 12.4629C9.42874 12.608 9.09956 12.7071 8.76009 12.7672C8.68483 12.7802 8.674 12.811 8.67455 12.8766C8.67671 13.3406 8.67455 13.8047 8.67725 14.2688C8.67779 14.3381 8.66426 14.3646 8.58684 14.3636C8.13908 14.3598 7.69079 14.3608 7.24304 14.3636C7.17536 14.3641 7.15803 14.3424 7.15803 14.2769C7.1602 13.8475 7.15695 13.4181 7.16074 12.9887C7.16128 12.9128 7.14179 12.8906 7.06491 12.8863C6.31992 12.843 5.59658 12.699 4.90303 12.4174C4.78229 12.3681 4.66426 12.3112 4.54948 12.2495C4.51321 12.23 4.50075 12.2116 4.51158 12.1688C4.66318 11.5943 4.81369 11.0197 4.96204 10.4446C4.97829 10.3824 5.00373 10.4024 5.03947 10.4214C5.63557 10.7387 6.2674 10.9477 6.93768 11.036C7.01672 11.0463 7.09685 11.0501 7.1759 11.0614C7.23383 11.0695 7.24737 11.0479 7.24737 10.9927C7.24412 10.6147 7.2452 10.2383 7.2452 9.86252ZM8.68537 9.36325C8.67942 9.37245 8.67455 9.37678 8.67455 9.38112C8.674 9.83978 8.67401 10.2984 8.67292 10.7571C8.67292 10.8177 8.70216 10.7928 8.72598 10.7755C8.82452 10.7046 8.90736 10.619 8.96691 10.5123C9.17698 10.1333 9.05679 9.63725 8.68537 9.36325ZM7.23871 6.11147C7.23871 5.75354 7.23871 5.40589 7.23871 5.05174C6.92522 5.33982 6.92522 5.77249 7.23871 6.11147Z"
|
|
||||||
fill="#FEFEFE"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M8.68433 9.36328C9.05574 9.63729 9.17539 10.1333 8.96586 10.5118C8.90631 10.619 8.82347 10.7046 8.72493 10.775C8.70111 10.7918 8.67188 10.8172 8.67188 10.7566C8.67242 10.2979 8.67296 9.83927 8.6735 9.38061C8.67404 9.37682 8.67891 9.37249 8.68433 9.36328Z"
|
|
||||||
fill="#59BE59"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M7.23882 6.11149C6.92533 5.77305 6.92587 5.33984 7.23882 5.05176C7.23882 5.40591 7.23882 5.75355 7.23882 6.11149Z"
|
|
||||||
fill="#59BE59"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</span>
|
|
||||||
<span className="text-base text-dark-gray dark:text-white font-medium">
|
|
||||||
6392.99$
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td className="text-right py-4">
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
className="text-sm text-white bg-light-green px-2.5 py-1.5 rounded-full"
|
|
||||||
>
|
|
||||||
Complated
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</>
|
<div className="relative w-full overflow-x-auto sm:rounded-lg">
|
||||||
);
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400">
|
||||||
|
<tbody>
|
||||||
|
<>
|
||||||
|
{uploadedFiles?.data && uploadedFiles?.data.length ? (
|
||||||
|
currentFiles.map((value, idx) => {
|
||||||
|
let addedDate = value?.added?.split(" ")[0];
|
||||||
|
let formattedSize = formatFileSize(value?.file_size);
|
||||||
|
return (
|
||||||
|
<tr
|
||||||
|
key={value?.file_uid}
|
||||||
|
className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<td className=" py-4">
|
||||||
|
<div className="flex space-x-2 items-center w-full">
|
||||||
|
<div className="w-[60px] h-[60px] p-2 bg-alice-blue rounded-full overflow-hidden flex justify-center items-center">
|
||||||
|
<img
|
||||||
|
src={
|
||||||
|
localImgLoad(
|
||||||
|
`images/myfiles/${value.banner}`
|
||||||
|
) || defaultImg
|
||||||
|
}
|
||||||
|
alt="data"
|
||||||
|
className="w-full h-full rounded-full"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="flex flex-col flex-[0.9]">
|
||||||
|
<h1 className="font-bold text-xl text-dark-gray dark:text-white">
|
||||||
|
{value.title || "Dummy Text"}
|
||||||
|
</h1>
|
||||||
|
<div>
|
||||||
|
{value.description || "Dummy Description"}
|
||||||
|
</div>
|
||||||
|
<span className="text-sm text-thin-light-gray flex flext-start gap-1">
|
||||||
|
Added:{" "}
|
||||||
|
<span className="text-purple">{addedDate}</span>
|
||||||
|
</span>
|
||||||
|
<div className="flex gap-4 items-center">
|
||||||
|
<span className="text-sm text-thin-light-gray">
|
||||||
|
File Name:{" "}
|
||||||
|
<span className="text-purple">
|
||||||
|
{" "}
|
||||||
|
{value.file_name}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span className="text-sm text-thin-light-gray">
|
||||||
|
File Size:{" "}
|
||||||
|
<span className="text-purple">
|
||||||
|
{" "}
|
||||||
|
{formattedSize}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span className="text-sm text-thin-light-gray">
|
||||||
|
File Type:{" "}
|
||||||
|
<span className="text-purple">
|
||||||
|
{" "}
|
||||||
|
{value?.file_type}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="text-right py-4 px-2">
|
||||||
|
<div className="flex justify-center items-center">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
// onClick={() => {
|
||||||
|
// navigate("/manage-active-job", {
|
||||||
|
// state: { ...value, pathname },
|
||||||
|
// });
|
||||||
|
// }}
|
||||||
|
className="w-20 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
|
||||||
|
>
|
||||||
|
View
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
);
|
||||||
|
})
|
||||||
|
) : (
|
||||||
|
<tr className="font-bold text-xl text-dark-gray dark:text-white whitespace-nowrap">
|
||||||
|
<td className="p-2" colSpan={3}>
|
||||||
|
No Files Currently!
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{/* PAGINATION BUTTON */}
|
||||||
|
<PaginatedList
|
||||||
|
onClick={handlePagination}
|
||||||
|
prev={currentPage == 0 ? true : false}
|
||||||
|
next={
|
||||||
|
currentPage + Number(process.env.REACT_APP_ITEM_PER_PAGE) >=
|
||||||
|
uploadedFiles?.data.length
|
||||||
|
? true
|
||||||
|
: false
|
||||||
|
}
|
||||||
|
data={uploadedFiles?.data}
|
||||||
|
start={indexOfFirstItem}
|
||||||
|
stop={indexOfLastItem}
|
||||||
|
/>
|
||||||
|
{/* END OF PAGINATION BUTTON */}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const formatFileSize = (sizeInBytes) => {
|
||||||
|
if (sizeInBytes < 1024) {
|
||||||
|
return `${sizeInBytes} bytes`;
|
||||||
|
} else if (sizeInBytes < 1024 * 1024) {
|
||||||
|
const sizeInKB = (sizeInBytes / 1024).toFixed(2);
|
||||||
|
return `${sizeInKB} KB`;
|
||||||
|
} else {
|
||||||
|
const sizeInMB = (sizeInBytes / (1024 * 1024)).toFixed(2);
|
||||||
|
return `${sizeInMB} MB`;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|||||||
@@ -8,13 +8,16 @@ export default function TermsConditionTab() {
|
|||||||
<h1 className="text-3xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
<h1 className="text-3xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
||||||
Terms of use
|
Terms of use
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-base text-thin-light-gray leading-[28px] ">
|
<p className="text-base text-thin-light-gray leading-[28px]">
|
||||||
|
(updated August 10, 2023)
|
||||||
|
</p>
|
||||||
|
<p className="text-base text-thin-light-gray leading-[28px]">
|
||||||
These Website Terms & Conditions (“T&Cs”) apply to your access and
|
These Website Terms & Conditions (“T&Cs”) apply to your access and
|
||||||
use of www.wrenchboard.com,dashboard.wrenchboard.com (the “Site”),
|
use of www.wrenchboard.com,users.wrenchboard.com (the “Site”),
|
||||||
including all software, data, reports, text, images, sounds, video,
|
native apps, including all software, data, reports, text, images,
|
||||||
and all contents made available through any portion of the Site
|
sounds, video, and all contents made available through any portion
|
||||||
(collectively, the “Content”). Content includes all such elements as
|
of the Site (collectively, the “Content”). The range includes all
|
||||||
a whole, as well as individual elements and portions thereof.
|
such elements as whole, individual, and parts.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<hr />
|
<hr />
|
||||||
@@ -37,103 +40,138 @@ export default function TermsConditionTab() {
|
|||||||
<h1 className="text-2xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
<h1 className="text-2xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
||||||
General Conditions of Use
|
General Conditions of Use
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-base text-thin-light-gray leading-[28px] ">
|
<ul className="ml-8">
|
||||||
<b> Authorization to Access and Use Site and Content.</b> Subject to
|
<li className="text-base text-thin-light-gray leading-[28px]">
|
||||||
your compliance with these T&Cs and the provisions hereof, you may
|
<h1 className="text-lg tracking-wide font-bold text-dark-gray dark:text-white my-4">
|
||||||
access or use the Site and Content solely for the purpose of your
|
Authorization to Access and Use Site and Content.
|
||||||
evaluation of WRENCHBOARD and WRENCHBOARD’s products and services.
|
</h1>
|
||||||
You may only link to the Site or Content, or any portion thereof, as
|
<p className="text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
expressly permitted by WRENCHBOARD.
|
Subject to your compliance with these T&Cs and the provisions
|
||||||
<br />
|
hereof, you may access or use the Site and Content solely to
|
||||||
<b> Ownership and Restrictions.</b> All rights, title, and interest
|
evaluate WRENCHBOARD and WRENCHBOARD’s products and services.
|
||||||
in and to the Site and Content will remain with and belong
|
You may only link to the Site or Content, or any portion
|
||||||
exclusively to WRENCHBOARD. You will not (a) sublicense, resell,
|
thereof, as expressly permitted by WRENCHBOARD.
|
||||||
rent, lease, transfer, assign, time share or otherwise commercially
|
</p>
|
||||||
exploit or make the Site and any Content available to any third
|
</li>
|
||||||
party, (b) use the Site and Content in any unlawful manner
|
<li className="text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
(including without limitation in violation of any data, privacy or
|
<h1 className="text-lg tracking-wide font-bold text-dark-gray dark:text-white my-4">
|
||||||
export control laws) or in any manner that interferes with or
|
Ownership and Restrictions
|
||||||
disrupts the integrity or performance of the Site and Content or
|
</h1>
|
||||||
their related components, or (c) modify, adapt or hack the Site and
|
<p className="text-base text-thin-light-gray leading-[28px]">
|
||||||
Content to, or try to, gain unauthorized access to the restricted
|
All rights, title, and interest in and to the Site and Content
|
||||||
portions of the Site and Content or related systems or networks
|
will remain exclusive to WRENCHBOARD. You will not:
|
||||||
(i.e., circumvent any encryption or other security measures, gain
|
</p>
|
||||||
access to any source code or any other underlying form of technology
|
<ol className="ml-8 list-decimal">
|
||||||
or information, and gain access to any part of the Site and Content,
|
<li className="my-2 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
or any other products or services of WRENCHBOARD that are not
|
Sublicense, resell, rent, lease, transfer, assign, timeshare,
|
||||||
readily made available to the general public). You are not permitted
|
or commercially exploit or make the Site and any Content
|
||||||
to copy, modify, frame, repost, publicly perform or display, sell,
|
available to any third party.
|
||||||
reproduce, distribute, or create derivative works of the Site and
|
</li>
|
||||||
Content, except that you may download, display, and print one copy
|
<li className="my-2 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
of the publicly available materials (i.e., the Content that does not
|
Use the Site and Content in any unlawful manner (including
|
||||||
require an Account name or password to access) on any single
|
without limitation in violation of any data, privacy, or
|
||||||
computer solely for your personal, non-commercial use, provided that
|
export control laws) or in any way that interferes with or
|
||||||
you do not modify the material in any way and you keep intact all
|
disrupts the integrity or performance of the Site and Content
|
||||||
copyright, trademark, and other proprietary notices. You agree not
|
or their related components.
|
||||||
to access the Site or Content by any means other than through the
|
</li>
|
||||||
interface that is provided by WRENCHBOARD to access the same. You
|
<li className="my-2 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
may not use any “page-scrape,” “deep-link,” “spider,” or “robot or
|
Modify, adapt, or hack the Site and Content to, or try to,
|
||||||
other automatic program, device, algorithm or methodology, or any
|
gain unauthorized access to the restricted portions of the
|
||||||
similar manual process, to access, copy, acquire, or monitor any
|
Site and Content or related systems or networks (i.e.,
|
||||||
portion of the Site or any Content, or in any way reproduce or
|
circumvent any encryption or other security measures, gain
|
||||||
circumvent the presentation or navigational structure of the Site or
|
access to any source code or any other underlying form of
|
||||||
any Content, to obtain or attempt to obtain any Content or other
|
technology or information, and gain access to any part of the
|
||||||
information through any means not made generally available through
|
Site and Content, or any other products or services of
|
||||||
the Site by WRENCHBOARD. WRENCHBOARD reserves the right to take any
|
WRENCHBOARD that are not readily made available to the general
|
||||||
lawful measures to prevent any such activity. You may not forge
|
public).
|
||||||
headers or otherwise manipulate identifiers in order to disguise the
|
</li>
|
||||||
origin of any message or transmittal you send to WRENCHBOARD on or
|
</ol>
|
||||||
through the Site or any service offered on or through the Site. You
|
<p className="my-4 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
may not pretend that you are, or that you represent, someone else,
|
You are not permitted to copy, modify, frame, repost, publicly
|
||||||
or impersonate any other individual or entity.
|
perform or display, sell, reproduce, distribute, or create
|
||||||
<b> Responsibility for Your Data.</b> You are solely responsible for
|
derivative works of the Site and Content, except that you may
|
||||||
all data, information, and other content, that you upload, post, or
|
download and print one copy of the publicly available materials
|
||||||
otherwise provide or store (hereafter “post(ing)”) in connection
|
(i.e., the Content that does not require an Account name or
|
||||||
with or relating to the Site.
|
password to access) on any single computer solely for your
|
||||||
</p>
|
personal, non-commercial use, provided that you do not modify
|
||||||
</div>
|
the material in any way. You keep intact all copyright,
|
||||||
<hr />
|
trademark, and other proprietary notices.
|
||||||
|
</p>
|
||||||
<div className="my-8">
|
<p className="my-4 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
<h1 className="text-2xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
You agree not to access the Site or Content by any means other
|
||||||
Use of Intellectual Property.
|
than through the interface that WRENCHBOARD provides to access
|
||||||
</h1>
|
the same. You may not use any “page-scrape,” “deep-link,”
|
||||||
<p className="text-base text-thin-light-gray leading-[28px] ">
|
“spider,” or “robot or other automatic program, device,
|
||||||
<b> Rights in User Content.</b> By posting your information and
|
algorithm or methodology, or any similar manual process, to
|
||||||
other content (“User Content”) on or through the Site and Content,
|
access, copy, acquire, or monitor any portion of the Site or any
|
||||||
you grant WRENCHBOARD a worldwide, non-exclusive, perpetual,
|
Content, or in any way reproduce or circumvent the presentation
|
||||||
irrevocable, royalty-free, fully paid, sublicensable and
|
or navigational structure of the Site or any Content, to obtain
|
||||||
transferable license to use, modify, reproduce, distribute, display,
|
or attempt to obtain any Content or other information through
|
||||||
publish and perform User Content in connection with the Site and
|
any means not made generally available through the Site by
|
||||||
Content. WRENCHBOARD has the right, but not the obligation, to
|
WRENCHBOARD.
|
||||||
monitor the Site and Content and User Content. WRENCHBOARD may
|
</p>
|
||||||
remove or disable any User Content at any time for any reason, or
|
<p className="my-4 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
for no reason at all. You, the user, acknowledge that you bear sole
|
WRENCHBOARD reserves the right to take lawful measures to
|
||||||
responsibility for adequate security, protection, and backup of User
|
prevent such activity. You may not forge headers or otherwise
|
||||||
Content. WRENCHBOARD will have no liability to you for any
|
manipulate identifiers to disguise the origin of any message or
|
||||||
unauthorized access or use of any of User Content, or any
|
transmittal you send to WRENCHBOARD on or through the Site or
|
||||||
corruption, deletion, destruction, or loss of any of User Content.
|
any service offered on or through the Site. You may not pretend
|
||||||
</p>
|
that you are, or that you represent, someone else or impersonate
|
||||||
</div>
|
any other individual or entity.
|
||||||
<hr />
|
</p>
|
||||||
|
</li>
|
||||||
<div className="my-8">
|
<li className="text-base text-thin-light-gray leading-[28px]">
|
||||||
<h1 className="text-2xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
<h1 className="text-lg tracking-wide font-bold text-dark-gray dark:text-white my-4">
|
||||||
Feedback
|
Responsibility for Your Data
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-base text-thin-light-gray leading-[28px] ">
|
<p className="text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
You may submit ideas, suggestions, or comments (“Feedback”)
|
You are solely responsible for all data, information, and other
|
||||||
regarding the Site and Content or WRENCHBOARD’s business, products,
|
Content, that you upload, post, or otherwise provide or store
|
||||||
or services. By submitting any Feedback, you acknowledge and agree
|
(hereafter “post(ing)”) in connection with or relating to the
|
||||||
that (a) your Feedback is provided by you voluntarily and
|
Site. By posting your information and other Content (“User
|
||||||
WRENCHBOARD may, without any obligations or limitation, use and
|
Content”) on or through the Site and Content, you grant
|
||||||
exploit such Feedback in any manner and for any purpose, (b) you
|
WRENCHBOARD a worldwide, non-exclusive, perpetual, irrevocable,
|
||||||
will not seek and are not entitled to any money or other form of
|
royalty-free, sublicensable, and transferable license to use,
|
||||||
compensation, consideration, or attribution with respect to your
|
modify, reproduce, distribute, display, publish and perform User
|
||||||
Feedback regardless of whether WRENCHBOARD considered or used your
|
Content in connection with the Site and Content. WRENCHBOARD has
|
||||||
Feedback in any manner, and (c) your Feedback is not the
|
the right, but not the obligation, to monitor the Site and
|
||||||
confidential or proprietary information of you or any third party.
|
Content and User Content. <br />
|
||||||
</p>
|
WRENCHBOARD may remove or turn off any User Content at any time
|
||||||
|
for any reason or no reason. WRENCHBOARD will have no liability
|
||||||
|
to you for any unauthorized access or use of any of User Content
|
||||||
|
or any corruption, deletion, destruction, or loss of any of User
|
||||||
|
Content.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li className="text-base text-thin-light-gray leading-[28px]">
|
||||||
|
<h1 className="text-lg tracking-wide font-bold text-dark-gray dark:text-white my-4">
|
||||||
|
Feedback
|
||||||
|
</h1>
|
||||||
|
<p className="text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
|
You may submit ideas, suggestions, or comments (“Feedback”)
|
||||||
|
regarding the Site and Content or WRENCHBOARD’s business,
|
||||||
|
products, or services. By submitting any Feedback, you
|
||||||
|
acknowledge and agree that:{" "}
|
||||||
|
</p>
|
||||||
|
<ol className="ml-8 list-decimal">
|
||||||
|
<li className="my-2 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
|
Your Feedback is provided by you voluntarily, and WRENCHBOARD
|
||||||
|
may, without any obligations or limitations, use and exploit
|
||||||
|
such Feedback in any manner and for any purpose.
|
||||||
|
</li>
|
||||||
|
<li className="my-2 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
|
You will not seek and are not entitled to any money or other
|
||||||
|
form of compensation, consideration, or attribution concerning
|
||||||
|
your Feedback, regardless of whether WRENCHBOARD considered or
|
||||||
|
used your Feedback in any manner.
|
||||||
|
</li>
|
||||||
|
<li className="my-2 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
|
Your Feedback is not confidential or proprietary information
|
||||||
|
of you or any third party.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
@@ -141,36 +179,32 @@ export default function TermsConditionTab() {
|
|||||||
<h1 className="text-2xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
<h1 className="text-2xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
||||||
Termination of Access Due to Violations
|
Termination of Access Due to Violations
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-base text-thin-light-gray leading-[28px] ">
|
<p className="font-bold text-base text-thin-light-gray leading-[28px] ">
|
||||||
WRENCHBOARD may, in its sole discretion and without prior notice,
|
WRENCHBOARD may, in its sole discretion and without prior notice,
|
||||||
terminate your access to the Site and/or block your future access to
|
terminate your access to the Site and block your future access to
|
||||||
the Site if we determine that you have violated these T&Cs or other
|
the Site if we determine that you have violated these T&Cs or other
|
||||||
agreements or guidelines which may be associated with your use of
|
agreements or guidelines which may be associated with your use of
|
||||||
the Site. You also agree that any violation by you of these T&Cs
|
the Site. Further, WRENCHBOARD may, in its sole discretion and
|
||||||
will cause irreparable harm to WRENCHBOARD, for which monetary
|
without prior notice, terminate your access to the Site for cause,
|
||||||
damages would be inadequate, and you consent to WRENCHBOARD
|
which includes (but is not limited to):
|
||||||
obtaining any injunctive or equitable relief that WRENCHBOARD deems
|
|
||||||
necessary or appropriate in such circumstances, without limiting
|
|
||||||
WRENCHBOARD’s other available remedies. Further, WRENCHBOARD may, in
|
|
||||||
its sole discretion and without prior notice, terminate your access
|
|
||||||
to the Site, for cause, which includes (but is not limited to) (1)
|
|
||||||
requests by law enforcement or other government agencies, (2)
|
|
||||||
discontinuance or material modification of the Site or any service
|
|
||||||
offered on or through the Site, or (3) unexpected technical issues
|
|
||||||
or problems.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
<ol className="ml-8 list-decimal font-bold">
|
||||||
<hr />
|
<li className="my-2 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
|
Requests by law enforcement or other government agencies
|
||||||
<div className="my-8">
|
</li>
|
||||||
<h1 className="text-2xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
<li className="my-2 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
T&Cs Updates
|
Discontinuance or material modification of the Site or any service
|
||||||
</h1>
|
offered on or through the Site
|
||||||
|
</li>
|
||||||
|
<li className="my-2 text-base font-bold text-thin-light-gray leading-[28px]">
|
||||||
|
Unexpected technical issues or problems.T&Cs Updates
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
<p className="text-base text-thin-light-gray leading-[28px] ">
|
<p className="text-base text-thin-light-gray leading-[28px] ">
|
||||||
WRENCHBOARD reserves the right, at its sole discretion, to change or
|
WRENCHBOARD reserves the right, at its sole discretion, to change or
|
||||||
modify portions of these T&Cs at any time. WRENCHBOARD will post the
|
modify portions of these T&Cs at any time. WRENCHBOARD will post the
|
||||||
changes to these T&Cs on the Site and will indicate at the top of
|
changes to these T&Cs on the Site and indicate at the top of this
|
||||||
this page the date these terms were last revised. It is your
|
page the date these terms were last revised. It is your
|
||||||
responsibility to check the T&Cs periodically for changes. Your
|
responsibility to check the T&Cs periodically for changes. Your
|
||||||
continued use of the Site and Content after the date any such
|
continued use of the Site and Content after the date any such
|
||||||
changes become effective constitutes your acceptance of the new or
|
changes become effective constitutes your acceptance of the new or
|
||||||
@@ -193,42 +227,36 @@ export default function TermsConditionTab() {
|
|||||||
REPRESENTATIONS OR WARRANTIES ARISING FROM COURSE OF DEALING, COURSE
|
REPRESENTATIONS OR WARRANTIES ARISING FROM COURSE OF DEALING, COURSE
|
||||||
OF PERFORMANCE OR USAGE OF TRADE. YOU ACKNOWLEDGE THAT WRENCHBOARD
|
OF PERFORMANCE OR USAGE OF TRADE. YOU ACKNOWLEDGE THAT WRENCHBOARD
|
||||||
DOES NOT WARRANT THAT YOUR ACCESS OR USE OR BOTH OF THE SITE AND
|
DOES NOT WARRANT THAT YOUR ACCESS OR USE OR BOTH OF THE SITE AND
|
||||||
CONTENT WILL BE UNINTERRUPTED, TIMELY, SECURE, ERROR-FREE OR
|
CONTENT WILL BE UNINTERRUPTED, TIMELY, SECURE, ERROR-FREE, OR
|
||||||
VIRUS-FREE, AND WRENCHBOARD DOES NOT MAKE ANY WARRANTY AS TO THE
|
VIRUS-FREE, AND WRENCHBOARD DOES NOT MAKE ANY WARRANTY AS TO THE
|
||||||
RESULTS THAT MAY BE OBTAINED FROM USE OF THE SITE AND CONTENT. NO
|
RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SITE AND CONTENT.
|
||||||
INFORMATION, ADVICE OR SERVICES OBTAINED BY YOU FROM WRENCHBOARD OR
|
NO INFORMATION, ADVICE, OR SERVICES OBTAINED BY YOU FROM WRENCHBOARD
|
||||||
THROUGH THE SITE WILL CREATE ANY WARRANTY NOT EXPRESSLY STATED IN
|
OR THROUGH THE SITE WILL CREATE ANY WARRANTY NOT EXPRESSLY STATED IN
|
||||||
THESE TERMS and CONDITIONS AND YOU SHOULD NOT RELY ON THE SITE AND
|
THESE TERMS and CONDITIONS, AND YOU SHOULD NOT RELY ON THE SITE AND
|
||||||
THE GENERAL CONTENT ALONE AS THE BASIS FOR YOUR BUSINESS DECISIONS.
|
THE GENERAL CONTENT ALONE AS THE BASIS FOR YOUR BUSINESS DECISIONS.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<div className="my-8">
|
<div className="my-8">
|
||||||
<p className="text-base text-thin-light-gray leading-[28px] ">
|
<p className="font-bold text-base text-thin-light-gray leading-[28px] ">
|
||||||
WRENCHBOARD reserves the right to do any of the following, at any
|
WRENCHBOARD reserves the right to do any of the following, at any
|
||||||
time, without notice: (1) to modify, suspend or terminate operation
|
time, without notice: ( 1 ); to modify, suspend or terminate operation
|
||||||
of or access to the Site, or any portion of the Site, for any
|
of or access to the Site, or any portion of the Site, for any
|
||||||
reason; (2) to modify or change the Site, or any portion of the
|
reason; ( 2 ) to modify or change the Site, or any portion of the
|
||||||
Site, for any reason; and (3) to interrupt the operation of the
|
Site, for any reason; and ( 3 ) to interrupt the operation of the
|
||||||
Site, or any portion of the Site, as necessary to perform routine or
|
Site, or any portion of the Site, as necessary to perform routine or
|
||||||
non-routine maintenance, error correction, or other changes..
|
non-routine maintenance, error correction, or other changes. Changes
|
||||||
|
to the Policy
|
||||||
</p>
|
</p>
|
||||||
</div>
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<div className="mt-8">
|
<p className="my-4 text-base text-thin-light-gray leading-[28px] ">
|
||||||
<h1 className="text-2xl tracking-wide font-bold text-dark-gray dark:text-white mb-4">
|
We reserve the right to update and change this Privacy policy at any
|
||||||
Changes To the Policy
|
time. Changes will become effective once posted. However, we will
|
||||||
</h1>
|
notify you by email or when you log on to the service or website
|
||||||
<p className="text-base text-thin-light-gray leading-[28px] ">
|
about any changes that fundamentally affect how we manage your
|
||||||
We reserve the rights to update and make changes to this Privacy
|
personal information. Contacting Us: You may contact us about this
|
||||||
policy at anytime. Changes will become effective once posted.
|
policy through our email address anytime: support@wrenchboard.com
|
||||||
However, we will notify you by email or when you log on to the
|
|
||||||
service or website about any changes that fundamentally affect how
|
|
||||||
we manage your personal information. Contacting Us: You may contact
|
|
||||||
us about this policy through our email address anytime :
|
|
||||||
support@wrenchboard.com
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,10 +7,12 @@ import Layout from "../Partials/Layout";
|
|||||||
import ProductUploadField from "./ProductUploadField";
|
import ProductUploadField from "./ProductUploadField";
|
||||||
import LoadingSpinner from "../Spinners/LoadingSpinner";
|
import LoadingSpinner from "../Spinners/LoadingSpinner";
|
||||||
import usersService from "../../services/UsersService";
|
import usersService from "../../services/UsersService";
|
||||||
|
import { useNavigate } from "react-router-dom";
|
||||||
|
|
||||||
export default function UploadProduct({uploadTypes}) {
|
export default function UploadProduct({uploadTypes}) {
|
||||||
const apiCall = new usersService()
|
const apiCall = new usersService()
|
||||||
const [requestStatus, setRequestStatus] = useState({loading: false, status: null, message: ''}) // DETERMINES THE STATUS OF UPLOAD
|
const [requestStatus, setRequestStatus] = useState({loading: false, status: null, message: ''}) // DETERMINES THE STATUS OF UPLOAD
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
// preview modal
|
// preview modal
|
||||||
const [previewProductModal, setPreviewProductModal] = useState(false);
|
const [previewProductModal, setPreviewProductModal] = useState(false);
|
||||||
@@ -140,8 +142,8 @@ export default function UploadProduct({uploadTypes}) {
|
|||||||
file_size: imgDetails.size,
|
file_size: imgDetails.size,
|
||||||
file_type: imgDetails.type,
|
file_type: imgDetails.type,
|
||||||
file_data: img,
|
file_data: img,
|
||||||
item_name: itemName,
|
title: itemName,
|
||||||
item_description: description,
|
description: description,
|
||||||
msg_type: 'FILE',
|
msg_type: 'FILE',
|
||||||
// action: 'WRENCHBOARD_RESOURCE_MYFILES',
|
// action: 'WRENCHBOARD_RESOURCE_MYFILES',
|
||||||
action: 11307
|
action: 11307
|
||||||
@@ -154,13 +156,13 @@ export default function UploadProduct({uploadTypes}) {
|
|||||||
},5000)
|
},5000)
|
||||||
}
|
}
|
||||||
|
|
||||||
// let validSize = isValidFileSize(imgDetails, uploadTypes?.data) // FUNCTION TO CHECK IF FILE SIZE IS VALID
|
let validSize = isValidFileSize(imgDetails, uploadTypes?.data) // FUNCTION TO CHECK IF FILE SIZE IS VALID
|
||||||
// if(!validSize.status){
|
if(!validSize.status){
|
||||||
// setRequestStatus({loading: false, status: null, message: validSize.message})
|
setRequestStatus({loading: false, status: null, message: validSize.message})
|
||||||
// return setTimeout(()=>{
|
return setTimeout(()=>{
|
||||||
// setRequestStatus({loading: false, status: false, message: ''})
|
setRequestStatus({loading: false, status: false, message: ''})
|
||||||
// },5000)
|
},5000)
|
||||||
// }
|
}
|
||||||
|
|
||||||
//API CALL TO UPLOAD COMES HERE
|
//API CALL TO UPLOAD COMES HERE
|
||||||
setRequestStatus({loading: true, status: null, message: ''}) // SETS REQUEST LOADING TRUE
|
setRequestStatus({loading: true, status: null, message: ''}) // SETS REQUEST LOADING TRUE
|
||||||
@@ -390,7 +392,8 @@ export default function UploadProduct({uploadTypes}) {
|
|||||||
<div className="flex sm:space-x-4 space-x-2 sm:mr-9 mr-2">
|
<div className="flex sm:space-x-4 space-x-2 sm:mr-9 mr-2">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={cancelUploadModalHandler}
|
// onClick={cancelUploadModalHandler}
|
||||||
|
onClick={()=>navigate('/resources', {state:{tab:'created'}})}
|
||||||
className="sm:text-18 text-sm text-light-red tracking-wide "
|
className="sm:text-18 text-sm text-light-red tracking-wide "
|
||||||
>
|
>
|
||||||
<span className="border-b dark:border-[#5356fb29] border-light-red">
|
<span className="border-b dark:border-[#5356fb29] border-light-red">
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
|
|||||||
const { jobListTable } = useSelector((state) => state.tableReload);
|
const { jobListTable } = useSelector((state) => state.tableReload);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
userDetails: { username, uid },
|
userDetails: { username, uid, session },
|
||||||
} = useSelector((state) => state?.userDetails); // CHECKS IF USER Details are avaliable, to determine if user is active
|
} = useSelector((state) => state?.userDetails); // CHECKS IF USER Details are avaliable, to determine if user is active
|
||||||
|
|
||||||
let loggedIn = username && uid ? true : false; // variable to determine if user is logged in
|
let loggedIn = username && session && uid ? true : false; // variable to determine if user is logged in
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
//Removing Data stored at localStorage after session expires
|
//Removing Data stored at localStorage after session expires
|
||||||
@@ -149,7 +149,7 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
|
|||||||
// sort: _sorted,
|
// sort: _sorted,
|
||||||
// header: _header,
|
// header: _header,
|
||||||
// },
|
// },
|
||||||
data: _sorted
|
data: _sorted,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -86,6 +86,18 @@ class usersService {
|
|||||||
return this.postAuxEnd("/loadprofile", null);
|
return this.postAuxEnd("/loadprofile", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getUploadedList() {
|
||||||
|
var postData = {
|
||||||
|
uid: localStorage.getItem("uid"),
|
||||||
|
member_id: localStorage.getItem("member_id"),
|
||||||
|
sessionid: localStorage.getItem("session_token"),
|
||||||
|
page: 1,
|
||||||
|
limit: 20,
|
||||||
|
action: 11309,
|
||||||
|
};
|
||||||
|
return this.postAuxEnd("/myfiles", postData);
|
||||||
|
}
|
||||||
|
|
||||||
getOffersList() {
|
getOffersList() {
|
||||||
var postData = {
|
var postData = {
|
||||||
uuid: localStorage.getItem("uid"),
|
uuid: localStorage.getItem("uid"),
|
||||||
@@ -226,7 +238,7 @@ class usersService {
|
|||||||
return this.postAuxEnd("/sendmoneyfee", postData);
|
return this.postAuxEnd("/sendmoneyfee", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start Credit for Cards
|
// Start Credit for Cards
|
||||||
getStartCredit(value) {
|
getStartCredit(value) {
|
||||||
var postData = {
|
var postData = {
|
||||||
uid: localStorage.getItem("uid"),
|
uid: localStorage.getItem("uid"),
|
||||||
@@ -346,6 +358,7 @@ class usersService {
|
|||||||
page: 0,
|
page: 0,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
limit: 100,
|
limit: 100,
|
||||||
|
allstatus: 0
|
||||||
};
|
};
|
||||||
return this.postAuxEnd("/activetaskslist", postData);
|
return this.postAuxEnd("/activetaskslist", postData);
|
||||||
}
|
}
|
||||||
@@ -577,7 +590,7 @@ class usersService {
|
|||||||
return this.postAuxEnd("/familymanage", postData);
|
return this.postAuxEnd("/familymanage", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// END POINT CALL FOR ACCOUNT TOP
|
// END POINT CALL FOR ACCOUNT TOP
|
||||||
startTopUp(post) {
|
startTopUp(post) {
|
||||||
alert("WHY ARE WE CALLING THIS ?");
|
alert("WHY ARE WE CALLING THIS ?");
|
||||||
// var postData = {
|
// var postData = {
|
||||||
@@ -591,7 +604,6 @@ class usersService {
|
|||||||
// return this.postAuxEnd("/starttopup", postData);
|
// return this.postAuxEnd("/starttopup", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
resultTopUp(post) {
|
resultTopUp(post) {
|
||||||
var postData = {
|
var postData = {
|
||||||
uid: localStorage.getItem("uid"),
|
uid: localStorage.getItem("uid"),
|
||||||
@@ -600,7 +612,7 @@ class usersService {
|
|||||||
action: 11061,
|
action: 11061,
|
||||||
...post,
|
...post,
|
||||||
};
|
};
|
||||||
console.log("topupresult",postData);
|
console.log("topupresult", postData);
|
||||||
return this.postAuxEnd("/topupresult", postData);
|
return this.postAuxEnd("/topupresult", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -972,64 +984,64 @@ class usersService {
|
|||||||
return this.postAuxEnd("/familysuggestlist", postData);
|
return this.postAuxEnd("/familysuggestlist", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION TO CHANGE PROFILE PASSWORD
|
// FUNCTION TO CHANGE PROFILE PASSWORD
|
||||||
profilePassChange(reqData) {
|
profilePassChange(reqData) {
|
||||||
var postData = {
|
var postData = {
|
||||||
uid: localStorage.getItem("uid"),
|
uid: localStorage.getItem("uid"),
|
||||||
member_id: localStorage.getItem("member_id"),
|
member_id: localStorage.getItem("member_id"),
|
||||||
sessionid: localStorage.getItem("session_token"),
|
sessionid: localStorage.getItem("session_token"),
|
||||||
action: 11005,
|
action: 11005,
|
||||||
...reqData,
|
...reqData,
|
||||||
};
|
};
|
||||||
return this.postAuxEnd("/profilepasschange", postData);
|
return this.postAuxEnd("/profilepasschange", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION TO GET ACCOUNT SETTINGS
|
// FUNCTION TO GET ACCOUNT SETTINGS
|
||||||
getAccSettings() {
|
getAccSettings() {
|
||||||
var postData = {
|
var postData = {
|
||||||
uid: localStorage.getItem("uid"),
|
uid: localStorage.getItem("uid"),
|
||||||
member_id: localStorage.getItem("member_id"),
|
member_id: localStorage.getItem("member_id"),
|
||||||
sessionid: localStorage.getItem("session_token"),
|
sessionid: localStorage.getItem("session_token"),
|
||||||
action: 11059,
|
action: 11059,
|
||||||
};
|
};
|
||||||
return this.postAuxEnd("/getaccsettings", postData);
|
return this.postAuxEnd("/getaccsettings", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION TO SET ACCOUNT SETTINGS
|
// FUNCTION TO SET ACCOUNT SETTINGS
|
||||||
setAccSettings(reqdata) {
|
setAccSettings(reqdata) {
|
||||||
var postData = {
|
var postData = {
|
||||||
uid: localStorage.getItem("uid"),
|
uid: localStorage.getItem("uid"),
|
||||||
member_id: localStorage.getItem("member_id"),
|
member_id: localStorage.getItem("member_id"),
|
||||||
sessionid: localStorage.getItem("session_token"),
|
sessionid: localStorage.getItem("session_token"),
|
||||||
action: 11058,
|
action: 11058,
|
||||||
...reqdata,
|
...reqdata,
|
||||||
};
|
};
|
||||||
return this.postAuxEnd("/setaccsettings", postData);
|
return this.postAuxEnd("/setaccsettings", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION TO DELETE PAY CARD
|
// FUNCTION TO DELETE PAY CARD
|
||||||
payRemCard(reqData) {
|
payRemCard(reqData) {
|
||||||
var postData = {
|
var postData = {
|
||||||
uid: localStorage.getItem("uid"),
|
uid: localStorage.getItem("uid"),
|
||||||
member_id: localStorage.getItem("member_id"),
|
member_id: localStorage.getItem("member_id"),
|
||||||
sessionid: localStorage.getItem("session_token"),
|
sessionid: localStorage.getItem("session_token"),
|
||||||
action: 11057,
|
action: 11057,
|
||||||
...reqData,
|
...reqData,
|
||||||
};
|
};
|
||||||
return this.postAuxEnd("/payremcard", postData);
|
return this.postAuxEnd("/payremcard", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION TO GET SINGLE BLOG ITEM
|
// FUNCTION TO GET SINGLE BLOG ITEM
|
||||||
getSingleBlogData(reqData) {
|
getSingleBlogData(reqData) {
|
||||||
var postData = {
|
var postData = {
|
||||||
uid: localStorage.getItem("uid"),
|
uid: localStorage.getItem("uid"),
|
||||||
member_id: localStorage.getItem("member_id"),
|
member_id: localStorage.getItem("member_id"),
|
||||||
sessionid: localStorage.getItem("session_token"),
|
sessionid: localStorage.getItem("session_token"),
|
||||||
limit: 4,
|
limit: 4,
|
||||||
...reqData,
|
...reqData,
|
||||||
};
|
};
|
||||||
return this.postAuxEnd("/blogdata", postData);
|
return this.postAuxEnd("/blogdata", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)
|
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ const initialState = {
|
|||||||
othersInterestedTable: false,
|
othersInterestedTable: false,
|
||||||
couponTable: false,
|
couponTable: false,
|
||||||
walletTable: false,
|
walletTable: false,
|
||||||
|
uploadsTable: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const tableReloadSlice = createSlice({
|
export const tableReloadSlice = createSlice({
|
||||||
@@ -33,6 +34,9 @@ export const tableReloadSlice = createSlice({
|
|||||||
case "WALLETTABLE":
|
case "WALLETTABLE":
|
||||||
state.walletTable = !state.walletTable;
|
state.walletTable = !state.walletTable;
|
||||||
return;
|
return;
|
||||||
|
case "UPLOADSTABLE":
|
||||||
|
state.uploadsTable = !state.uploadsTable;
|
||||||
|
return;
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import Resources from "../components/Resources";
|
import Resources from "../components/Resources";
|
||||||
import usersService from "../services/UsersService";
|
import usersService from "../services/UsersService";
|
||||||
|
import { useLocation } from "react-router-dom";
|
||||||
export default function ResourcePage() {
|
export default function ResourcePage() {
|
||||||
|
const {state, pathname} = useLocation() // CHECKS IF THERE IS AN ACTIVE TAB WITH LINK BACK TO RESOURCES
|
||||||
const [MyResourceData, setMyResourceData] = useState([]);
|
const [MyResourceData, setMyResourceData] = useState([]);
|
||||||
const api = new usersService();
|
const api = new usersService();
|
||||||
|
|
||||||
@@ -17,5 +19,5 @@ export default function ResourcePage() {
|
|||||||
getMyResourceData();
|
getMyResourceData();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return <Resources MyResourceData={MyResourceData} />;
|
return <Resources MyResourceData={MyResourceData} activeTab={state ? state.tab : ''} />;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user