Skip to content

Commit b48103e

Browse files
authored
Merge pull request #1352 from Arnei/eslint-no-unsafe-assignment
Activate eslint no-unsafe-anything
2 parents 994b5b6 + a4150a6 commit b48103e

59 files changed

Lines changed: 741 additions & 426 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

eslint.config.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,7 @@ export default [
1919
"@typescript-eslint/no-explicit-any": "off",
2020
"@typescript-eslint/no-floating-promises": "off",
2121
"@typescript-eslint/no-misused-promises": "off",
22-
"@typescript-eslint/no-unsafe-argument": "off",
23-
"@typescript-eslint/no-unsafe-assignment": "off",
24-
"@typescript-eslint/no-unsafe-call": "off",
25-
"@typescript-eslint/no-unsafe-member-access": "off",
2622
"@typescript-eslint/no-unused-vars": "off",
27-
"@typescript-eslint/no-unsafe-return": "off",
2823
"@typescript-eslint/require-await": "off",
2924
},
3025
},

src/components/About.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,13 @@ const About = () => {
2020
return `/ui/config/admin-ui/${location.pathname.split("/").pop()}.${language}.html`;
2121
};
2222

23-
axios.get(getURL(i18n.language))
23+
// We should be getting HTML from the endpoint
24+
axios.get<string>(getURL(i18n.language))
2425
.then(response => {
2526
setAboutContent(response.data);
2627
})
2728
.catch(() => {
28-
axios.get(getURL(typeof i18n.options.fallbackLng === "string" ? i18n.options.fallbackLng : "en-US"))
29+
axios.get<string>(getURL(typeof i18n.options.fallbackLng === "string" ? i18n.options.fallbackLng : "en-US"))
2930
.then(response => {
3031
setAboutContent(response.data);
3132
})

src/components/configuration/partials/wizard/NewThemeWizard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ const NewThemeWizard = ({
9999
setActivePage={setPage}
100100
completed={pageCompleted}
101101
setCompleted={setPageCompleted}
102-
formik={formik}
102+
isValid={formik.isValid}
103103
/>
104104
<div>
105105
{steps[page].name === "generalForm" && (

src/components/events/partials/ModalTabsAndPages/EventDetailsSchedulingTab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ const EventDetailsSchedulingTab = ({
152152
};
153153

154154
// checks validity of the formik form
155-
const checkValidity = (formik: FormikProps<any>) => {
155+
const checkValidity = (formik: FormikProps<InitialValues>) => {
156156
if (
157157
formik.dirty &&
158158
formik.isValid &&

src/components/events/partials/ModalTabsAndPages/NewAssetUploadPage.tsx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import ModalContentTable from "../../../shared/modals/ModalContentTable";
1414
*/
1515
interface RequiredFormProps {
1616
sourceMode: string,
17-
[key: string]: any,
17+
[key: string]: unknown,
1818
}
1919

2020
const NewAssetUploadPage = <T extends RequiredFormProps>({
@@ -73,11 +73,17 @@ const NewAssetUploadPage = <T extends RequiredFormProps>({
7373
type="file"
7474
tabIndex={0}
7575
/>
76-
{formik.values[asset.id] && (
77-
<span className="ui-helper">
78-
{formik.values[asset.id].name.substr(0, 50)}
79-
</span>
80-
)}
76+
{(() => {
77+
const val = formik.values[asset.id];
78+
if (val instanceof File) {
79+
return (
80+
<span className="ui-helper">
81+
{val.name.substring(0, 50)}
82+
</span>
83+
);
84+
}
85+
return null;
86+
})()}
8187
</div>
8288
</td>
8389
{/*Button to remove asset*/}

src/components/events/partials/modals/DeleteEventsModal.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,7 @@ const DeleteEventsModal = ({
114114
<td>{isEvent(event) && event.title}</td>
115115
<td>
116116
{/* Repeat for each presenter*/}
117-
{/* @ts-expect-error TS(7006): Parameter 'presenter' implicitly has an 'any' type... Remove this comment to see the full error message */}
118-
{event.presenters.map((presenter, key) => (
117+
{isEvent(event) && event.presenters.map((presenter, key) => (
119118
<span className="metadata-entry" key={key}>
120119
{presenter}
121120
</span>

src/components/events/partials/modals/DeleteSeriesModal.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,7 @@ const DeleteSeriesModal = ({
192192
<td>{isSeries(series) && series.title}</td>
193193
<td>
194194
{/*Repeat for each creator*/}
195-
{/* @ts-expect-error TS(7006): Parameter 'organizer' implicitly has an 'any' type */}
196-
{series.organizers.map((organizer, key) => (
195+
{isSeries(series) && series.organizers.map((organizer, key) => (
197196
<span className="metadata-entry" key={key}>
198197
{organizer}
199198
</span>

src/components/events/partials/modals/EditScheduledEventsModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ const EditScheduledEventsModal = ({
142142
setActivePage={setPage}
143143
completed={pageCompleted}
144144
setCompleted={setPageCompleted}
145-
formik={formik}
145+
isValid={formik.isValid}
146146
/>
147147
<div>
148148
{steps[page].name === "general" && (

src/components/events/partials/modals/StartTaskModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ const StartTaskModal = ({
108108
setActivePage={setPage}
109109
completed={pageCompleted}
110110
setCompleted={setPageCompleted}
111-
formik={formik}
111+
isValid={formik.isValid}
112112
/>
113113
<div>
114114
{steps[page].name === "general" && (

src/components/events/partials/wizards/NewEventSummary.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { TransformedAcl } from "../../../../slices/aclDetailsSlice";
1616
import { renderValidDate } from "../../../../utils/dateUtils";
1717
import { ParseKeys } from "i18next";
1818
import ModalContentTable from "../../../shared/modals/ModalContentTable";
19+
import { UploadAssetsTrack } from "../../../../slices/eventSlice";
1920

2021
/**
2122
* This component renders the summary page for new events in the new event wizard.
@@ -37,6 +38,7 @@ interface RequiredFormProps {
3738
deviceInputs?: string[]
3839
configuration: { [key: string]: string }
3940
policies: TransformedAcl[]
41+
uploadAssetsTrack?: UploadAssetsTrack[]
4042
[key: string]: unknown, // Metadata fields
4143
}
4244

@@ -57,7 +59,7 @@ const NewEventSummary = <T extends RequiredFormProps>({
5759
const [uploadAssetsNonTrack, setUploadAssetsNonTrack] = useState<{
5860
name: string,
5961
translate?: string,
60-
value: any,
62+
value: File,
6163
}[]>([]);
6264

6365
const uploadAssetOptions = useAppSelector(state => getAssetUploadOptions(state));
@@ -70,10 +72,10 @@ const NewEventSummary = <T extends RequiredFormProps>({
7072
const uploadAssetsNonTrack: {
7173
name: string,
7274
translate?: string,
73-
value: any,
75+
value: File,
7476
}[] = [];
7577
for (let i = 0; uploadAssetOptions.length > i; i++) {
76-
const fieldValue = formik.values[uploadAssetOptions[i].id];
78+
const fieldValue = formik.values[uploadAssetOptions[i].id] as File;
7779
if (fieldValue) {
7880
const displayOverride = uploadAssetOptions[i].displayOverride as ParseKeys;
7981
setUploadAssetsNonTrack(uploadAssetsNonTrack.concat({
@@ -155,8 +157,7 @@ const NewEventSummary = <T extends RequiredFormProps>({
155157
<table className="main-tbl">
156158
<tbody>
157159
{/*Insert row for each upload asset of type track user has provided*/}
158-
{/* @ts-expect-error TS(7006): Parameter 'asset' implicitly has an 'any' type. */}
159-
{formik.values.uploadAssetsTrack.map((asset, key) =>
160+
{formik.values.uploadAssetsTrack && formik.values.uploadAssetsTrack.map((asset, key) =>
160161
asset.file ? (
161162
<tr key={key}>
162163
<td>

0 commit comments

Comments
 (0)