changes for the antd v5 components

This commit is contained in:
swtmply
2023-04-19 22:04:08 +08:00
parent a2eaa3b376
commit cccb411cde
14 changed files with 91 additions and 93 deletions

View File

@@ -18,24 +18,39 @@ export function BreadCrumbs({ breadcrumbs, bodyshop }) {
return ( return (
<Row className="breadcrumb-container"> <Row className="breadcrumb-container">
<Col xs={24} sm={24} md={16}> <Col xs={24} sm={24} md={16}>
<Breadcrumb separator=">"> <Breadcrumb
<Breadcrumb.Item> separator=">"
items={[
{
title: (
<Link to={`/manage`}> <Link to={`/manage`}>
<HomeFilled />{" "} <HomeFilled />{" "}
{(bodyshop && bodyshop.shopname && `(${bodyshop.shopname})`) || {(bodyshop &&
bodyshop.shopname &&
`(${bodyshop.shopname})`) ||
""} ""}
</Link> </Link>
</Breadcrumb.Item> ),
{breadcrumbs.map((item) => },
item.link ? ( ...breadcrumbs.map((item) =>
<Breadcrumb.Item key={item.label}> item.link
<Link to={item.link}>{item.label} </Link> ? {
</Breadcrumb.Item> title: (
) : ( <Link key={item.label} to={item.link}>
<Breadcrumb.Item key={item.label}>{item.label}</Breadcrumb.Item> {item.label}{" "}
) </Link>
)} ),
</Breadcrumb> }
: {
title: (
<React.Fragment key={item.label}>
{item.label}
</React.Fragment>
),
}
),
]}
></Breadcrumb>
</Col> </Col>
<Col xs={24} sm={24} md={8}> <Col xs={24} sm={24} md={8}>
<GlobalSearch /> <GlobalSearch />

View File

@@ -1,6 +1,6 @@
import Icon, { SyncOutlined } from "@ant-design/icons"; import Icon, { SyncOutlined } from "@ant-design/icons";
import { gql, useMutation, useQuery } from "@apollo/client"; import { gql, useMutation, useQuery } from "@apollo/client";
import { PageHeader } from '@ant-design/pro-layout'; import { PageHeader } from "@ant-design/pro-layout";
import { Button, Dropdown, Menu, notification, Space } from "antd"; import { Button, Dropdown, Menu, notification, Space } from "antd";
import i18next from "i18next"; import i18next from "i18next";
import _ from "lodash"; import _ from "lodash";
@@ -139,7 +139,7 @@ export function DashboardGridComponent({ currentUser, bodyshop }) {
<Button onClick={() => refetch()}> <Button onClick={() => refetch()}>
<SyncOutlined /> <SyncOutlined />
</Button> </Button>
<Dropdown overlay={addComponentOverlay} trigger={["click"]}> <Dropdown menu={addComponentOverlay} trigger={["click"]}>
<Button>{t("dashboard.actions.addcomponent")}</Button> <Button>{t("dashboard.actions.addcomponent")}</Button>
</Dropdown> </Dropdown>
</Space> </Space>

View File

@@ -104,7 +104,7 @@ export function EmailOverlayComponent({
label={ label={
<Space> <Space>
{t("emails.fields.to")} {t("emails.fields.to")}
<Dropdown overlay={menu}> <Dropdown menu={menu}>
<a <a
className="ant-dropdown-link" className="ant-dropdown-link"
href=" #" href=" #"

View File

@@ -3,7 +3,7 @@ import {
useApolloClient, useApolloClient,
useLazyQuery, useLazyQuery,
useMutation, useMutation,
useQuery useQuery,
} from "@apollo/client"; } from "@apollo/client";
import { useTreatments } from "@splitsoftware/splitio-react"; import { useTreatments } from "@splitsoftware/splitio-react";
import { Col, notification, Row } from "antd"; import { Col, notification, Row } from "antd";
@@ -20,7 +20,7 @@ import { logImEXEvent } from "../../firebase/firebase.utils";
import { import {
DELETE_AVAILABLE_JOB, DELETE_AVAILABLE_JOB,
QUERY_AVAILABLE_JOBS, QUERY_AVAILABLE_JOBS,
QUERY_AVAILABLE_NEW_JOBS_EST_DATA_BY_PK QUERY_AVAILABLE_NEW_JOBS_EST_DATA_BY_PK,
} from "../../graphql/available-jobs.queries"; } from "../../graphql/available-jobs.queries";
import { INSERT_NEW_JOB, UPDATE_JOB } from "../../graphql/jobs.queries"; import { INSERT_NEW_JOB, UPDATE_JOB } from "../../graphql/jobs.queries";
import { INSERT_NEW_NOTE } from "../../graphql/notes.queries"; import { INSERT_NEW_NOTE } from "../../graphql/notes.queries";
@@ -28,7 +28,7 @@ import { SEARCH_VEHICLE_BY_VIN } from "../../graphql/vehicles.queries";
import { insertAuditTrail } from "../../redux/application/application.actions"; import { insertAuditTrail } from "../../redux/application/application.actions";
import { import {
selectBodyshop, selectBodyshop,
selectCurrentUser selectCurrentUser,
} from "../../redux/user/user.selectors"; } from "../../redux/user/user.selectors";
import confirmDialog from "../../utils/asyncConfirm"; import confirmDialog from "../../utils/asyncConfirm";
import AuditTrailMapping from "../../utils/AuditTrailMappings"; import AuditTrailMapping from "../../utils/AuditTrailMappings";
@@ -363,7 +363,7 @@ export function JobsAvailableContainer({
owner={owner} owner={owner}
selectedOwner={selectedOwner} selectedOwner={selectedOwner}
setSelectedOwner={setSelectedOwner} setSelectedOwner={setSelectedOwner}
visible={ownerModalVisible} open={ownerModalVisible}
onOk={onOwnerFindModalOk} onOk={onOwnerFindModalOk}
onCancel={onOwnerModalCancel} onCancel={onOwnerModalCancel}
/> />
@@ -373,7 +373,7 @@ export function JobsAvailableContainer({
selectedJob={selectedJob} selectedJob={selectedJob}
setSelectedJob={setSelectedJob} setSelectedJob={setSelectedJob}
importOptionsState={importOptionsState} importOptionsState={importOptionsState}
visible={jobModalVisible} open={jobModalVisible}
onOk={onJobFindModalOk} onOk={onJobFindModalOk}
onCancel={onJobModalCancel} onCancel={onJobModalCancel}
modalSearchState={modalSearchState} modalSearchState={modalSearchState}

View File

@@ -32,7 +32,7 @@ export default connect(
variables: { variables: {
statuses: bodyshop.md_ro_statuses.active_statuses || ["Open"], statuses: bodyshop.md_ro_statuses.active_statuses || ["Open"],
}, },
skip: !modalProps.visible, skip: !modalProps.open,
fetchPolicy: "network-only", fetchPolicy: "network-only",
nextFetchPolicy: "network-only", nextFetchPolicy: "network-only",
}); });

View File

@@ -30,13 +30,13 @@ export default function OwnerFindModalContainer({
); );
useEffect(() => { useEffect(() => {
if (modalProps.visible && owner) { if (modalProps.open && owner) {
const s = OwnerNameDisplayFunction(owner, true); const s = OwnerNameDisplayFunction(owner, true);
setSearchText(s.trim()); setSearchText(s.trim());
callSearchowners({ variables: { search: s.trim() } }); callSearchowners({ variables: { search: s.trim() } });
} }
}, [callSearchowners, modalProps.visible, owner]); }, [callSearchowners, modalProps.open, owner]);
return ( return (
<Modal <Modal

View File

@@ -87,7 +87,7 @@ export default function PartsOrderModalPriceChange({ form, field }) {
/> />
); );
return ( return (
<Dropdown overlay={menu} trigger="click"> <Dropdown menu={menu} trigger="click">
<Space> <Space>
% %
<DownOutlined /> <DownOutlined />

View File

@@ -56,7 +56,7 @@ export default function ProductionListDate({
style={{ style={{
height: "19px", height: "19px",
}} }}
overlay={ menu={
<Card style={{ padding: "1rem" }} onClick={(e) => e.stopPropagation()}> <Card style={{ padding: "1rem" }} onClick={(e) => e.stopPropagation()}>
<FormDatePicker <FormDatePicker
onClick={(e) => e.stopPropagation()} onClick={(e) => e.stopPropagation()}

View File

@@ -97,7 +97,7 @@ export function ProductionLastContacted({ currentUser, record }) {
style={{ style={{
height: "19px", height: "19px",
}} }}
overlay={ menu={
<Card <Card
style={{ padding: "1rem" }} style={{ padding: "1rem" }}
onClick={(e) => e.stopPropagation()} onClick={(e) => e.stopPropagation()}

View File

@@ -90,7 +90,7 @@ export default function ScoreboardEntryEdit({ entry }) {
return ( return (
<div> <div>
<Dropdown open={visible} overlay={popContent}> <Dropdown open={visible} menu={popContent}>
<Button <Button
onClick={(e) => { onClick={(e) => {
e.stopPropagation(); e.stopPropagation();

View File

@@ -81,7 +81,7 @@ export function ShopTemplateAddComponent({
); );
return ( return (
<Dropdown overlay={menu}> <Dropdown menu={menu}>
<span> <span>
{t("bodyshop.actions.addtemplate")} <DownOutlined /> {t("bodyshop.actions.addtemplate")} <DownOutlined />
</span> </span>

View File

@@ -41,7 +41,7 @@ export default function TimeTicketsDatesSelector() {
end ? moment(end) : moment().endOf("week"), end ? moment(end) : moment().endOf("week"),
]} ]}
format="MM/DD/YYYY" format="MM/DD/YYYY"
ranges={DatePickerRanges} presets={DatePickerRanges}
onCalendarChange={handleChange} onCalendarChange={handleChange}
/> />
); );

View File

@@ -1,4 +1,4 @@
import { PageHeader } from '@ant-design/pro-layout'; import { PageHeader } from "@ant-design/pro-layout";
import { Button, Result, Space, Steps } from "antd"; import { Button, Result, Space, Steps } from "antd";
import React, { useContext, useState } from "react"; import React, { useContext, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
@@ -19,16 +19,11 @@ export default function JobsCreateComponent({ form }) {
{ {
title: t("jobs.labels.create.vehicleinfo"), title: t("jobs.labels.create.vehicleinfo"),
content: <JobsCreateVehicleInfoContainer form={form} />, content: <JobsCreateVehicleInfoContainer form={form} />,
validation:
!!state.vehicle.new ||
!!state.vehicle.selectedid ||
!!state.vehicle.none,
error: t("vehicles.errors.selectexistingornew"), error: t("vehicles.errors.selectexistingornew"),
}, },
{ {
title: t("jobs.labels.create.ownerinfo"), title: t("jobs.labels.create.ownerinfo"),
content: <JobsCreateOwnerInfoContainer />, content: <JobsCreateOwnerInfoContainer />,
validation: !!state.owner.new || !!state.owner.selectedid,
error: t("owners.errors.selectexistingornew"), error: t("owners.errors.selectexistingornew"),
}, },
{ {
@@ -43,7 +38,6 @@ export default function JobsCreateComponent({ form }) {
const prev = () => { const prev = () => {
setPageIndex(pageIndex - 1); setPageIndex(pageIndex - 1);
}; };
const { Step } = Steps;
const ProgressButtons = ({ top }) => { const ProgressButtons = ({ top }) => {
return ( return (
@@ -80,16 +74,9 @@ export default function JobsCreateComponent({ form }) {
} }
> >
{top && ( {top && (
<Steps current={pageIndex}> <Steps
{steps.map((item, idx) => ( current={pageIndex}
<Step onChange={(idx) => {
key={item.title}
title={item.title}
style={{
cursor: "pointer",
fontWeight: idx === pageIndex && "bolder",
}}
onClick={() => {
form form
.validateFields() .validateFields()
.then((r) => { .then((r) => {
@@ -102,9 +89,8 @@ export default function JobsCreateComponent({ form }) {
}) })
.catch((error) => console.log("error", error)); .catch((error) => console.log("error", error));
}} }}
items={steps}
/> />
))}
</Steps>
)} )}
</PageHeader> </PageHeader>
); );

View File

@@ -54,32 +54,29 @@ export function ScoreboardContainer({ setBreadcrumbs, setSelectedHeader }) {
search: queryString.stringify(searchParams), search: queryString.stringify(searchParams),
}); });
}} }}
> items={[
<Tabs.TabPane {
tab={ key: "sb",
label: (
<span> <span>
<Icon component={FaShieldAlt} /> <Icon component={FaShieldAlt} />
{t("scoreboard.labels.jobs")} {t("scoreboard.labels.jobs")}
</span> </span>
} ),
destroyInactiveTabPane children: <ScoreboardDisplay />,
key="sb" },
> {
<ScoreboardDisplay /> key: "tickets",
</Tabs.TabPane> label: (
<Tabs.TabPane
tab={
<span> <span>
<FieldTimeOutlined /> <FieldTimeOutlined />
{t("scoreboard.labels.timetickets")} {t("scoreboard.labels.timetickets")}
</span> </span>
} ),
destroyInactiveTabPane children: <ScoreboardTimeTickets />,
key="tickets" },
> ]}
<ScoreboardTimeTickets /> ></Tabs>
</Tabs.TabPane>
</Tabs>
</RbacWrapper> </RbacWrapper>
</FeatureWrapper> </FeatureWrapper>
); );