Lint all the things

This commit is contained in:
Dave
2025-08-19 16:23:29 -04:00
parent f6d6b548be
commit 33fb60ca1a
640 changed files with 2129 additions and 3927 deletions

View File

@@ -1,6 +1,6 @@
import { FileExcelFilled, SyncOutlined } from "@ant-design/icons";
import { Alert, Button, Card, Col, Row, Space } from "antd";
import React, { useEffect, useState } from "react";
import { useEffect, useState } from "react";
import { Gallery } from "react-grid-gallery";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
@@ -57,35 +57,34 @@ export function JobsDocumentsLocalGallery({
}
}, [job, invoice_number, getJobMedia, getBillMedia]);
let optimized;
const jobMedia =
allMedia && allMedia[job.id]
? allMedia[job.id].reduce(
(acc, val) => {
if (val.type && val.type.mime && val.type.mime.startsWith("image")) {
acc.images.push({
...val,
fullsize: val.src,
src: val.thumbnail,
height: val.thumbnailHeight,
width: val.thumbnailWidth,
...(val.optimized && { src: val.optimized, fullsize: val.src })
});
if (val.optimized) optimized = true;
} else {
acc.other.push({
...val,
fullsize: val.src,
src: val.thumbnail,
height: val.thumbnailHeight,
width: val.thumbnailWidth,
tags: [{ value: val.filename, title: val.filename }]
});
}
return acc;
},
{ images: [], other: [] }
)
: { images: [], other: [] };
const jobMedia = allMedia?.[job.id]
? allMedia[job.id].reduce(
(acc, val) => {
if (val.type?.mime && val.type.mime.startsWith("image")) {
acc.images.push({
...val,
fullsize: val.src,
src: val.thumbnail,
height: val.thumbnailHeight,
width: val.thumbnailWidth,
...(val.optimized && { src: val.optimized, fullsize: val.src })
});
if (val.optimized) optimized = true;
} else {
acc.other.push({
...val,
fullsize: val.src,
src: val.thumbnail,
height: val.thumbnailHeight,
width: val.thumbnailWidth,
tags: [{ value: val.filename, title: val.filename }]
});
}
return acc;
},
{ images: [], other: [] }
)
: { images: [], other: [] };
const hasMediaAccess = HasFeatureAccess({ bodyshop, featureName: "media" });
return (
<div>
@@ -140,7 +139,12 @@ export function JobsDocumentsLocalGallery({
}}
{...(optimized && {
customControls: [
<Alert style={{ margin: "4px" }} message={t("documents.labels.optimizedimage")} type="success" />
<Alert
key="optimizedImageALert"
style={{ margin: "4px" }}
message={t("documents.labels.optimizedimage")}
type="success"
/>
]
})}
onClick={(index) => {

View File

@@ -1,6 +1,6 @@
import { QuestionCircleOutlined } from "@ant-design/icons";
import { Button, Popconfirm } from "antd";
import React, { useState } from "react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import { logImEXEvent } from "../../firebase/firebase.utils";
import cleanAxios from "../../utils/CleanAxios";
@@ -36,7 +36,7 @@ export function JobsDocumentsLocalDeleteButton({ bodyshop, getJobMedia, allMedia
`${bodyshop.localmediaserverhttp}/jobs/delete`,
{
jobid: jobid,
files: ((allMedia && allMedia[jobid]) || []).filter((i) => i.isSelected).map((i) => i.filename)
files: (allMedia?.[jobid] || []).filter((i) => i.isSelected).map((i) => i.filename)
},
{ headers: { ims_token: bodyshop.localmediatoken } }
);

View File

@@ -1,5 +1,5 @@
import { Button } from "antd";
import React, { useState } from "react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import cleanAxios from "../../utils/CleanAxios";
@@ -12,12 +12,12 @@ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
allMedia: selectAllMedia
});
const mapDispatchToProps = (dispatch) => ({
const mapDispatchToProps = () => ({
//setUserLanguage: language => dispatch(setUserLanguage(language))
});
export default connect(mapStateToProps, mapDispatchToProps)(JobsLocalGalleryDownloadButton);
export function JobsLocalGalleryDownloadButton({ bodyshop, galleryImages, allMedia, job }) {
export function JobsLocalGalleryDownloadButton({ bodyshop, allMedia, job }) {
const { t } = useTranslation();
const [download, setDownload] = useState(null);
@@ -25,7 +25,7 @@ export function JobsLocalGalleryDownloadButton({ bodyshop, galleryImages, allMed
setDownload((currentDownloadState) => {
return {
downloaded: progressEvent.loaded || 0,
speed: (progressEvent.loaded || 0) - ((currentDownloadState && currentDownloadState.downloaded) || 0)
speed: (progressEvent.loaded || 0) - (currentDownloadState?.downloaded || 0)
};
});
}
@@ -35,7 +35,7 @@ export function JobsLocalGalleryDownloadButton({ bodyshop, galleryImages, allMed
`${bodyshop.localmediaserverhttp}/jobs/download`,
{
jobid: job.id,
files: ((allMedia && allMedia[job.id]) || []).filter((i) => i.isSelected).map((i) => i.filename)
files: (allMedia?.[job.id] || []).filter((i) => i.isSelected).map((i) => i.filename)
},
{
headers: { ims_token: bodyshop.localmediatoken },

View File

@@ -1,9 +1,9 @@
import React, { useEffect } from "react";
import { useEffect } from "react";
import { Gallery } from "react-grid-gallery";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { getJobMedia, toggleMediaSelected } from "../../redux/media/media.actions";
import { getJobMedia } from "../../redux/media/media.actions";
import { selectAllMedia } from "../../redux/media/media.selectors";
import { selectBodyshop } from "../../redux/user/user.selectors";
@@ -13,14 +13,12 @@ const mapStateToProps = createStructuredSelector({
});
const mapDispatchToProps = (dispatch) => ({
getJobMedia: (id) => dispatch(getJobMedia(id)),
toggleMediaSelected: ({ jobid, filename }) => dispatch(toggleMediaSelected({ jobid, filename }))
getJobMedia: (id) => dispatch(getJobMedia(id))
});
export default connect(mapStateToProps, mapDispatchToProps)(JobDocumentsLocalGalleryExternal);
function JobDocumentsLocalGalleryExternal({ jobId, externalMediaState, getJobMedia, toggleMediaSelected, allMedia }) {
function JobDocumentsLocalGalleryExternal({ jobId, externalMediaState, getJobMedia, allMedia }) {
const [galleryImages, setgalleryImages] = externalMediaState;
const { t } = useTranslation();
@@ -31,15 +29,14 @@ function JobDocumentsLocalGalleryExternal({ jobId, externalMediaState, getJobMed
}, [jobId, getJobMedia]);
useEffect(() => {
let documents =
allMedia && allMedia[jobId]
? allMedia[jobId].reduce((acc, val) => {
if (val.type && val.type.mime && val.type.mime.startsWith("image")) {
acc.push({ ...val, src: val.thumbnail, fullsize: val.src });
}
return acc;
}, [])
: [];
let documents = allMedia?.[jobId]
? allMedia[jobId].reduce((acc, val) => {
if (val.type?.mime && val.type.mime.startsWith("image")) {
acc.push({ ...val, src: val.thumbnail, fullsize: val.src });
}
return acc;
}, [])
: [];
console.log(
"🚀 ~ file: jobs-documents-local-gallery.external.component.jsx:48 ~ useEffect ~ documents:",
documents
@@ -52,7 +49,7 @@ function JobDocumentsLocalGalleryExternal({ jobId, externalMediaState, getJobMed
<div className="clearfix">
<Gallery
images={galleryImages}
onSelect={(index, image) => {
onSelect={(index) => {
setgalleryImages(galleryImages.map((g, idx) => (index === idx ? { ...g, isSelected: !g.isSelected } : g)));
}}
/>

View File

@@ -1,5 +1,4 @@
import { Button, Space } from "antd";
import React from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";