feature/IO-3497-Ant-Design-v5-to-v6 - Orientation
This commit is contained in:
2031
client/package-lock.json
generated
2031
client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -25,7 +25,7 @@
|
||||
"@sentry/vite-plugin": "^4.6.1",
|
||||
"@splitsoftware/splitio-react": "^2.6.1",
|
||||
"@tanem/react-nprogress": "^5.0.56",
|
||||
"antd": "^5.28.1",
|
||||
"antd": "^6.1.4",
|
||||
"apollo-link-logger": "^2.0.1",
|
||||
"apollo-link-sentry": "^4.4.0",
|
||||
"autosize": "^6.0.1",
|
||||
@@ -50,7 +50,7 @@
|
||||
"normalize-url": "^8.1.1",
|
||||
"object-hash": "^3.0.0",
|
||||
"phone": "^3.1.69",
|
||||
"posthog-js": "^1.315.1",
|
||||
"posthog-js": "^1.316.1",
|
||||
"prop-types": "^15.8.1",
|
||||
"query-string": "^9.3.1",
|
||||
"raf-schd": "^4.0.3",
|
||||
|
||||
@@ -316,7 +316,7 @@ const CardPaymentModalComponent = ({
|
||||
>
|
||||
{t("job_payments.buttons.proceedtopayment")}
|
||||
</Button>
|
||||
<Space direction="vertical" align="center">
|
||||
<Space orientation="vertical" align="center">
|
||||
<Button
|
||||
type="primary"
|
||||
// data-ipayname="submit"
|
||||
|
||||
@@ -95,7 +95,7 @@ function ChatConversationListComponent({ conversationList, selectedConversation,
|
||||
<>
|
||||
{item.label && <Tag color="blue">{item.label}</Tag>}
|
||||
{item.job_conversations.length > 0 ? (
|
||||
<Space direction="vertical">{names}</Space>
|
||||
<Space orientation="vertical">{names}</Space>
|
||||
) : (
|
||||
<Space>
|
||||
<PhoneFormatter>{item.phone_num}</PhoneFormatter>
|
||||
|
||||
@@ -68,7 +68,7 @@ function ChatSendMessageComponent({ conversation, bodyshop, sendMessage, isSendi
|
||||
};
|
||||
|
||||
return (
|
||||
<Space direction="vertical" style={{ width: "100%" }} size="middle">
|
||||
<Space orientation="vertical" style={{ width: "100%" }} size="middle">
|
||||
{isOptedOut && (
|
||||
<Tooltip title={t("consent.text_body")}>
|
||||
<Alert
|
||||
|
||||
@@ -67,7 +67,7 @@ export default function ContractFormComponent({ form, create = false, selectedJo
|
||||
.isBefore(dayjs(form.getFieldValue("scheduledreturn")));
|
||||
if (insuranceOver)
|
||||
return (
|
||||
<Space direction="vertical" style={{ color: "tomato" }}>
|
||||
<Space orientation="vertical" style={{ color: "tomato" }}>
|
||||
<span>
|
||||
<WarningFilled style={{ marginRight: ".3rem" }} />
|
||||
{t("contracts.labels.insuranceexpired")}
|
||||
@@ -107,7 +107,7 @@ export default function ContractFormComponent({ form, create = false, selectedJo
|
||||
.isSameOrBefore(dayjs(form.getFieldValue("scheduledreturn")));
|
||||
if (mileageOver || dueForService)
|
||||
return (
|
||||
<Space direction="vertical" style={{ color: "tomato" }}>
|
||||
<Space orientation="vertical" style={{ color: "tomato" }}>
|
||||
<span>
|
||||
<WarningFilled style={{ marginRight: ".3rem" }} />
|
||||
{t("contracts.labels.cardueforservice")}
|
||||
|
||||
@@ -208,7 +208,7 @@ export default function CourtesyCarCreateFormComponent({ form, saveLoading, newC
|
||||
const mileageOver = nextservicekm ? nextservicekm <= form.getFieldValue("mileage") : false;
|
||||
if (mileageOver)
|
||||
return (
|
||||
<Space direction="vertical" style={{ color: "tomato" }}>
|
||||
<Space orientation="vertical" style={{ color: "tomato" }}>
|
||||
<span>
|
||||
<WarningFilled style={{ marginRight: ".3rem" }} />
|
||||
{t("contracts.labels.cardueforservice")}
|
||||
@@ -232,7 +232,7 @@ export default function CourtesyCarCreateFormComponent({ form, saveLoading, newC
|
||||
|
||||
if (dueForService)
|
||||
return (
|
||||
<Space direction="vertical" style={{ color: "tomato" }}>
|
||||
<Space orientation="vertical" style={{ color: "tomato" }}>
|
||||
<span>
|
||||
<WarningFilled style={{ marginRight: ".3rem" }} />
|
||||
{t("contracts.labels.cardueforservice")}
|
||||
@@ -265,7 +265,7 @@ export default function CourtesyCarCreateFormComponent({ form, saveLoading, newC
|
||||
|
||||
if (dateover)
|
||||
return (
|
||||
<Space direction="vertical" style={{ color: "tomato" }}>
|
||||
<Space orientation="vertical" style={{ color: "tomato" }}>
|
||||
<span>
|
||||
<WarningFilled style={{ marginRight: ".3rem" }} />
|
||||
{t("contracts.labels.dateinpast")}
|
||||
@@ -298,7 +298,7 @@ export default function CourtesyCarCreateFormComponent({ form, saveLoading, newC
|
||||
|
||||
if (dateover)
|
||||
return (
|
||||
<Space direction="vertical" style={{ color: "tomato" }}>
|
||||
<Space orientation="vertical" style={{ color: "tomato" }}>
|
||||
<span>
|
||||
<WarningFilled style={{ marginRight: ".3rem" }} />
|
||||
{t("contracts.labels.dateinpast")}
|
||||
|
||||
@@ -70,7 +70,7 @@ export function DmsLogEvents({
|
||||
key: idx,
|
||||
color: logLevelColor(level),
|
||||
children: (
|
||||
<Space direction="vertical" size={4} style={{ display: "flex" }}>
|
||||
<Space orientation="vertical" size={4} style={{ display: "flex" }}>
|
||||
{/* Row 1: summary + inline "Details" toggle */}
|
||||
<Space wrap align="start">
|
||||
<Tag color={logLevelColor(level)}>{level}</Tag>
|
||||
|
||||
@@ -89,7 +89,7 @@ const DateTimePicker = ({
|
||||
return (
|
||||
<div onKeyDown={handleKeyDown} id={id} style={{ width: "100%" }}>
|
||||
{isSeparatedTime && (
|
||||
<Space direction="vertical" style={{ width: "100%" }}>
|
||||
<Space orientation="vertical" style={{ width: "100%" }}>
|
||||
<DatePicker
|
||||
showTime={false}
|
||||
format="MM/DD/YYYY"
|
||||
|
||||
@@ -17,7 +17,7 @@ export default function FormsFieldChanged({ form, skipPrompt }) {
|
||||
const errors = form.getFieldsError().filter((e) => e.errors.length > 0);
|
||||
if (form.isFieldsTouched())
|
||||
return (
|
||||
<Space direction="vertical" style={{ width: "100%" }}>
|
||||
<Space orientation="vertical" style={{ width: "100%" }}>
|
||||
<Prompt when={!skipPrompt} beforeUnload={true} message={t("general.messages.unsavedchangespopup")} />
|
||||
<AlertComponent
|
||||
type="warning"
|
||||
|
||||
@@ -14,7 +14,7 @@ export default function FormListMoveArrows({ move, index, total }) {
|
||||
};
|
||||
|
||||
return (
|
||||
<Space direction="vertical">
|
||||
<Space orientation="vertical">
|
||||
<UpOutlined disabled={upDisabled} onClick={handleUp} />
|
||||
<DownOutlined disabled={downDisabled} onClick={handleDown} />
|
||||
</Space>
|
||||
|
||||
@@ -19,7 +19,7 @@ export default function HelpRescue() {
|
||||
|
||||
return (
|
||||
<div style={{ display: "flex", justifyContent: "center" }}>
|
||||
<Space direction="vertical" align="center">
|
||||
<Space orientation="vertical" align="center">
|
||||
<div>{t("help.labels.rescuedesc")}</div>
|
||||
<Input
|
||||
size="large"
|
||||
|
||||
@@ -87,7 +87,7 @@ export function ScheduleEventComponent({
|
||||
});
|
||||
|
||||
const blockContent = (
|
||||
<Space direction="vertical" wrap>
|
||||
<Space orientation="vertical" wrap>
|
||||
<Input
|
||||
value={title}
|
||||
onChange={(e) => setTitle(e.currentTarget.value)}
|
||||
|
||||
@@ -7,11 +7,11 @@ export default function JobCostingStatistics({ summaryData, onlyGP }) {
|
||||
|
||||
const gpTotals = (
|
||||
<>
|
||||
<Space wrap direction="horizontal" size={"large"}>
|
||||
<Space wrap orientation="horizontal" size={"large"}>
|
||||
<Statistic value={Dinero(summaryData.totalSales).toFormat()} title={t("jobs.labels.total_sales")} />
|
||||
<Statistic value={Dinero(summaryData.totalCost).toFormat()} title={t("jobs.labels.total_cost")} />
|
||||
</Space>{" "}
|
||||
<Space wrap direction="horizontal" size={"large"}>
|
||||
<Space wrap orientation="horizontal" size={"large"}>
|
||||
<Statistic value={Dinero(summaryData.gpdollars).toFormat()} title={t("jobs.labels.gpdollars")} />
|
||||
<Statistic value={summaryData.gppercentFormatted} title={t("jobs.labels.gppercent")} />
|
||||
</Space>
|
||||
|
||||
@@ -509,7 +509,7 @@ export function JobLinesComponent({
|
||||
}}
|
||||
destroyOnHidden
|
||||
>
|
||||
<Space direction="vertical" style={{ width: "100%" }}>
|
||||
<Space orientation="vertical" style={{ width: "100%" }}>
|
||||
<Typography.Text type="secondary">
|
||||
{t("general.labels.selected")}: {selectedLineIds.length}
|
||||
</Typography.Text>
|
||||
|
||||
@@ -144,11 +144,11 @@ export function JobLifecycleComponent({ bodyshop, job, statuses }) {
|
||||
<Card loading={loading} title={t("job_lifecycle.content.title")}>
|
||||
{!loading ? (
|
||||
lifecycleData && lifecycleData.lifecycle && lifecycleData.durations ? (
|
||||
<Space direction="vertical" style={{ width: "100%" }}>
|
||||
<Space orientation="vertical" style={{ width: "100%" }}>
|
||||
<Card
|
||||
type="inner"
|
||||
title={
|
||||
<Space direction="horizontal" size="small">
|
||||
<Space orientation="horizontal" size="small">
|
||||
<Badge status="processing" count={lifecycleData.durations.totalStatuses} />
|
||||
{t("job_lifecycle.content.title_durations")}
|
||||
</Space>
|
||||
@@ -303,7 +303,7 @@ export function JobLifecycleComponent({ bodyshop, job, statuses }) {
|
||||
type="inner"
|
||||
title={
|
||||
<>
|
||||
<Space direction="horizontal" size="small">
|
||||
<Space orientation="horizontal" size="small">
|
||||
<Badge status="processing" count={lifecycleData.lifecycle.length} />
|
||||
{t("job_lifecycle.content.title_transitions")}
|
||||
</Space>
|
||||
|
||||
@@ -48,7 +48,7 @@ export default function JobReconciliationTotals({ billLines, jobLines, jobLineSt
|
||||
</Space>
|
||||
</div>
|
||||
<div>
|
||||
<Space direction="horizontal">
|
||||
<Space orientation="horizontal">
|
||||
<Button onClick={() => reconcileByAssocLine(jobLines, jobLineState, billLines, billLineState, setErrors)}>
|
||||
{t("jobs.labels.reconciliation.byassoc")}
|
||||
</Button>
|
||||
|
||||
@@ -81,7 +81,7 @@ const NotificationCenterComponent = forwardRef(
|
||||
return (
|
||||
<div className={`notification-center ${visible ? "visible" : ""}`} ref={ref}>
|
||||
<div className="notification-header">
|
||||
<Space direction="horizontal">
|
||||
<Space orientation="horizontal">
|
||||
<h3>{t("notifications.labels.notification-center")}</h3>
|
||||
{loading && <Spin spinning={loading} size="small"></Spin>}
|
||||
</Space>
|
||||
|
||||
@@ -113,7 +113,7 @@ export function PartsOrderListTableDrawerComponent({
|
||||
}, [selectedPartsOrderRecord, billQuery]);
|
||||
|
||||
const recordActions = (record) => (
|
||||
<Space direction="horizontal" wrap>
|
||||
<Space orientation="horizontal" wrap>
|
||||
<Button
|
||||
disabled={jobRO || record.return || record.vendor.id === bodyshop.inhousevendorid}
|
||||
onClick={() => {
|
||||
|
||||
@@ -72,7 +72,7 @@ export function PartsOrderListTableComponent({
|
||||
const { refetch } = billsQuery;
|
||||
|
||||
const recordActions = (record, showView = false) => (
|
||||
<Space direction="horizontal" wrap>
|
||||
<Space orientation="horizontal" wrap>
|
||||
<ShareToTeamsButton
|
||||
linkText={""}
|
||||
urlOverride={`${window.location.origin}/manage/jobs/${job.id}?partsorderid=${record.id}&tab=partssublet `}
|
||||
|
||||
@@ -22,7 +22,7 @@ export function PartsShopManagementComponent({ form, saveLoading }) {
|
||||
</Button>
|
||||
}
|
||||
>
|
||||
<Space direction="vertical" size="large" style={{ width: "100%" }}>
|
||||
<Space orientation="vertical" size="large" style={{ width: "100%" }}>
|
||||
{/* Business Information Section - Limited to basic shop info only */}
|
||||
<PartsBusinessInfoComponent form={form} />
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ export function PaymentsGenerateLink({ bodyshop, currentUser, callback, job, ope
|
||||
<CurrencyFormItemComponent />
|
||||
</Form.Item>
|
||||
{paymentLink && (
|
||||
<Space direction="vertical">
|
||||
<Space orientation="vertical">
|
||||
<Space
|
||||
style={{ cursor: "pointer" }}
|
||||
onClick={() => {
|
||||
|
||||
@@ -97,7 +97,7 @@ function PhoneNumberConsentList({ bodyshop }) {
|
||||
}
|
||||
return owners.map((owner) => (
|
||||
<div key={owner.id}>
|
||||
<Space direction="horizontal">
|
||||
<Space orientation="horizontal">
|
||||
<Link to={"/manage/owners/" + owner.id}>
|
||||
<OwnerNameDisplay ownerObject={owner} />
|
||||
</Link>
|
||||
|
||||
@@ -13,7 +13,7 @@ function PinnedJobNotes({ job }) {
|
||||
return pinnedNotes?.length ? (
|
||||
<>
|
||||
<Divider />
|
||||
<Space direction="vertical" style={{ width: "100%" }}>
|
||||
<Space orientation="vertical" style={{ width: "100%" }}>
|
||||
{pinnedNotes?.map((note) => (
|
||||
<Card
|
||||
key={note.id}
|
||||
|
||||
@@ -56,7 +56,7 @@ export default function ProductionListDate({ record, field, time, pastIndicator
|
||||
key: "overlayItem1",
|
||||
label: (
|
||||
<Card style={{ padding: "1rem" }} onClick={(e) => e.stopPropagation()}>
|
||||
<Space direction={"vertical"}>
|
||||
<Space orientation={"vertical"}>
|
||||
<DateTimePicker
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
value={(record[field] && dayjs(record[field])) || null}
|
||||
|
||||
@@ -87,7 +87,7 @@ export function ScheduleCalendarWrapperComponent({
|
||||
<span style={{ color: "var(--error-header-text)" }}>{t("appointments.labels.severalerrorsfound")}</span>
|
||||
}
|
||||
>
|
||||
<Space direction="vertical" style={{ width: "100%" }}>
|
||||
<Space orientation="vertical" style={{ width: "100%" }}>
|
||||
{problemJobs.map((problem) => (
|
||||
<Alert
|
||||
key={problem.id}
|
||||
@@ -108,7 +108,7 @@ export function ScheduleCalendarWrapperComponent({
|
||||
</Collapse.Panel>
|
||||
</Collapse>
|
||||
) : (
|
||||
<Space direction="vertical" style={{ width: "100%", marginBottom: "5px" }}>
|
||||
<Space orientation="vertical" style={{ width: "100%", marginBottom: "5px" }}>
|
||||
{problemJobs.map((problem) => (
|
||||
<Alert
|
||||
key={problem.id}
|
||||
|
||||
@@ -49,7 +49,7 @@ export function ScoreboardTicketsStats({ data, jobData, bodyshop }) {
|
||||
<Row gutter={[16, 16]}>
|
||||
<Col md={24}>
|
||||
{/* Daily Stats */}
|
||||
<Space direction="vertical" size="middle" style={{ display: "flex" }}>
|
||||
<Space orientation="vertical" size="middle" style={{ display: "flex" }}>
|
||||
<Row gutter={[16, 16]} align="center">
|
||||
{["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"].map((day) => {
|
||||
if (bodyshop.workingdays[day] === true) {
|
||||
|
||||
@@ -338,7 +338,7 @@ export function ShopInfoROStatusComponent({ bodyshop, form }) {
|
||||
<Space size="large" wrap>
|
||||
{fields.map((field, index) => (
|
||||
<Form.Item key={field.key}>
|
||||
<Space direction="vertical">
|
||||
<Space orientation="vertical">
|
||||
<div style={{ display: "flex" }}>
|
||||
<Form.Item
|
||||
style={{ flex: 1 }}
|
||||
|
||||
@@ -257,7 +257,7 @@ export function ShopInfoSchedulingComponent({ form, bodyshop }) {
|
||||
<InputNumber />
|
||||
</Form.Item>
|
||||
|
||||
<Space direction="horizontal">
|
||||
<Space orientation="horizontal">
|
||||
<Form.Item
|
||||
label={
|
||||
<Space>
|
||||
|
||||
@@ -187,7 +187,7 @@ function TaskListComponent({
|
||||
);
|
||||
}
|
||||
|
||||
return items.length > 0 ? <Space direction="vertical">{items}</Space> : null;
|
||||
return items.length > 0 ? <Space orientation="vertical">{items}</Space> : null;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -232,7 +232,7 @@ function TaskListComponent({
|
||||
key: "toggleCompleted",
|
||||
width: "8%",
|
||||
render: (text, record) => (
|
||||
<Space direction="horizontal">
|
||||
<Space orientation="horizontal">
|
||||
<ShareToTeamsButton
|
||||
linkText=""
|
||||
urlOverride={`${window.location.origin}/manage/tasks/alltasks?taskid=${record.id}`}
|
||||
@@ -310,7 +310,7 @@ function TaskListComponent({
|
||||
*/
|
||||
const tasksExtra = useCallback(() => {
|
||||
return (
|
||||
<Space direction="horizontal">
|
||||
<Space orientation="horizontal">
|
||||
{!onlyMine && (
|
||||
<Switch
|
||||
checkedChildren={t("tasks.buttons.myTasks")}
|
||||
|
||||
@@ -130,7 +130,7 @@ export function TechClockOffButton({
|
||||
cost_center: isShiftTicket ? "timetickets.labels.shift" : technician ? technician.cost_center : null
|
||||
}}
|
||||
>
|
||||
<Space direction="vertical">
|
||||
<Space orientation="vertical">
|
||||
{!isShiftTicket ? (
|
||||
<div>
|
||||
<Form.Item
|
||||
|
||||
@@ -342,7 +342,7 @@ export function LaborAllocationContainer({ jobid, loading, lineTicketData, hideT
|
||||
if (!lineTicketData) return null;
|
||||
if (!jobid) return null;
|
||||
return (
|
||||
<Space direction="vertical" style={{ width: "100%" }}>
|
||||
<Space orientation="vertical" style={{ width: "100%" }}>
|
||||
<Card style={{ height: "100%" }} title={t("jobs.labels.employeeassignments")}>
|
||||
<JobEmployeeAssignmentsContainer job={lineTicketData.jobs_by_pk} />
|
||||
</Card>
|
||||
|
||||
@@ -219,7 +219,7 @@ export function JobsCloseComponent({ job, bodyshop, jobRO, insertAuditTrail, set
|
||||
}
|
||||
/>
|
||||
<JobCloseRoGuardContainer form={form} job={job} />
|
||||
<Space wrap direction="vertical" style={{ width: "100%" }}>
|
||||
<Space wrap orientation="vertical" style={{ width: "100%" }}>
|
||||
<FormsFieldChanged form={form} />
|
||||
{!job.actual_in && job.scheduled_in && <Alert type="warning" message={t("jobs.labels.actual_in_inferred")} />}
|
||||
{!job.actual_completion && job.scheduled_completion && (
|
||||
|
||||
@@ -461,7 +461,7 @@ export function JobsDetailPage({
|
||||
icon: <FaTasks style={{ paddingTop: 3 }} />,
|
||||
id: "job-details-tasks",
|
||||
label: (
|
||||
<Space direction="horizontal" align="center">
|
||||
<Space orientation="horizontal" align="center">
|
||||
<span>{t("jobs.labels.tasks")}</span>
|
||||
{job.tasks_aggregate.aggregate.count > 0 && (
|
||||
<Badge size="small" count={job.tasks_aggregate.aggregate.count} />
|
||||
|
||||
Reference in New Issue
Block a user