import React, { ReactElement, useEffect } from 'react'; import Head from 'next/head' import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; import dayjs from "dayjs"; import {useAppDispatch, useAppSelector} from "../../stores/hooks"; import {useRouter} from "next/router"; import { fetch } from '../../stores/leads/leadsSlice' import {saveFile} from "../../helpers/fileSaver"; import dataFormatter from '../../helpers/dataFormatter'; import ImageField from "../../components/ImageField"; import LayoutAuthenticated from "../../layouts/Authenticated"; import {getPageTitle} from "../../config"; import SectionTitleLineWithButton from "../../components/SectionTitleLineWithButton"; import SectionMain from "../../components/SectionMain"; import CardBox from "../../components/CardBox"; import BaseButton from "../../components/BaseButton"; import BaseDivider from "../../components/BaseDivider"; import {mdiChartTimelineVariant} from "@mdi/js"; import {SwitchField} from "../../components/SwitchField"; import FormField from "../../components/FormField"; const LeadsView = () => { const router = useRouter() const dispatch = useAppDispatch() const { leads } = useAppSelector((state) => state.leads) const { id } = router.query; function removeLastCharacter(str) { console.log(str,`str`) return str.slice(0, -1); } useEffect(() => { dispatch(fetch({ id })); }, [dispatch, id]); return ( <>
User
{leads?.user?.firstName ?? 'No data'}
Category
{leads?.category?.name ?? 'No data'}
Keyword
{leads?.keyword}
Urgency
{leads?.urgency ?? 'No data'}
Status
{leads?.status ?? 'No data'}
ContactName
{leads?.contact_name}
ContactPhone
{leads?.contact_phone}
ContactEmail
{leads?.contact_email}
City
{leads?.city}
State
{leads?.state}
ZIP
{leads?.zip}
Latitude
{leads?.lat || 'No data'}
Longitude
{leads?.lng || 'No data'}
TenantKey
{leads?.tenant_key}
No CreatedAt
}No UpdatedAt
}Lead_photos Lead
| CreatedAt |
|---|
| { dataFormatter.dateTimeFormatter(item.created_at_ts) } |
Lead_matches Lead
| MatchScore | Status | SentAt | ViewedAt | RespondedAt | ScheduledAt | CompletedAt | DeclinedAt | CreatedAt | UpdatedAt |
|---|---|---|---|---|---|---|---|---|---|
| { item.match_score } | { item.status } | { dataFormatter.dateTimeFormatter(item.sent_at) } | { dataFormatter.dateTimeFormatter(item.viewed_at) } | { dataFormatter.dateTimeFormatter(item.responded_at) } | { dataFormatter.dateTimeFormatter(item.scheduled_at) } | { dataFormatter.dateTimeFormatter(item.completed_at) } | { dataFormatter.dateTimeFormatter(item.declined_at) } | { dataFormatter.dateTimeFormatter(item.created_at_ts) } | { dataFormatter.dateTimeFormatter(item.updated_at_ts) } |
Messages Lead
| Body | ReadAt | CreatedAt |
|---|---|---|
| { item.body } | { dataFormatter.dateTimeFormatter(item.read_at) } | { dataFormatter.dateTimeFormatter(item.created_at_ts) } |
Lead_events Lead
| EventType | FromValue | ToValue | MetaJSON | CreatedAt |
|---|---|---|---|---|
| { item.event_type } | { item.from_value } | { item.to_value } | { item.meta_json } | { dataFormatter.dateTimeFormatter(item.created_at_ts) } |
Reviews Lead
| Rating | Text | IsVerifiedJob | Status | ModerationNotes | CreatedAt | UpdatedAt |
|---|---|---|---|---|---|---|
| { item.rating } | { item.text } | { dataFormatter.booleanFormatter(item.is_verified_job) } | { item.status } | { item.moderation_notes } | { dataFormatter.dateTimeFormatter(item.created_at_ts) } | { dataFormatter.dateTimeFormatter(item.updated_at_ts) } |
Disputes Lead
| Reason | Status | ResolutionNotes | CreatedAt | UpdatedAt |
|---|---|---|---|---|
| { item.reason } | { item.status } | { item.resolution_notes } | { dataFormatter.dateTimeFormatter(item.created_at_ts) } | { dataFormatter.dateTimeFormatter(item.updated_at_ts) } |