Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replace useDispatch with useQuery/request in facility module (Part 2, E-Z) (src/Components/Facility/[E-Z]*.tsx #6448

Closed
wants to merge 13 commits into from
Closed
276 changes: 33 additions & 243 deletions package-lock.json
sriharsh05 marked this conversation as resolved.
Show resolved Hide resolved

Large diffs are not rendered by default.

71 changes: 68 additions & 3 deletions src/Components/Assets/AssetFilter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,42 @@ import { dateQueryString } from "../../Utils/utils";
const getDate = (value: any) =>
value && dayjs(value).isValid() && dayjs(value).toDate();

const initialFacilityState: FacilityModel = {
id: undefined,
name: "",
read_cover_image_url: "",
facility_type: "",
address: "",
features: [],
location: {
latitude: 0,
longitude: 0,
},
oxygen_capacity: 0,
phone_number: "",
type_b_cylinders: 0,
type_c_cylinders: 0,
type_d_cylinders: 0,
middleware_address: "",
expected_type_b_cylinders: 0,
expected_type_c_cylinders: 0,
expected_type_d_cylinders: 0,
expected_oxygen_requirement: 0,
local_body_object: undefined,
district_object: undefined,
state_object: undefined,
ward_object: undefined,
modified_date: "",
created_date: "",
state: 0,
district: 0,
local_body: 0,
ward: 0,
};

function AssetFilter(props: any) {
const { filter, onChange, closeFilter } = props;
const [facility, setFacility] = useState<FacilityModel>({ name: "" });
const [facility, setFacility] = useState<FacilityModel>(initialFacilityState);
sriharsh05 marked this conversation as resolved.
Show resolved Hide resolved
const [asset_type, setAssetType] = useState<string>(
filter.asset_type ? filter.asset_type : ""
);
Expand All @@ -40,7 +73,39 @@ function AssetFilter(props: any) {
pathParams: { id: facilityId },
onResponse: ({ res, data }) => {
if (res?.status === 200 && data) {
setFacility(data);
const transformedData = {
id: Number(data.id),
sriharsh05 marked this conversation as resolved.
Show resolved Hide resolved
name: data.name,
read_cover_image_url: data.read_cover_image_url,
facility_type: String(data.facility_type),
address: data.address,
features: data.features,
location: {
latitude: Number(data.latitude),
longitude: Number(data.longitude),
},
oxygen_capacity: data.oxygen_capacity,
phone_number: data.phone_number,
type_b_cylinders: data.type_b_cylinders,
type_c_cylinders: data.type_c_cylinders,
type_d_cylinders: data.type_d_cylinders,
middleware_address: data.middleware_address,
expected_type_b_cylinders: data.expected_type_b_cylinders,
expected_type_c_cylinders: data.expected_type_c_cylinders,
expected_type_d_cylinders: data.expected_type_d_cylinders,
expected_oxygen_requirement: data.expected_oxygen_requirement,
local_body_object: data.local_body_object,
district_object: data.district_object,
state_object: data.state_object,
ward_object: data.ward_object,
modified_date: data.modified_date,
created_date: data.created_date,
state: data.state,
district: data.district,
local_body: data.local_body,
ward: data.ward,
};
setFacility(transformedData);
sriharsh05 marked this conversation as resolved.
Show resolved Hide resolved
}
},
prefetch: !!facilityId,
Expand All @@ -54,7 +119,7 @@ function AssetFilter(props: any) {
}, [facility.id, qParams.facility, qParams.location]);

const clearFilter = useCallback(() => {
setFacility({ name: "" });
setFacility(initialFacilityState);
sriharsh05 marked this conversation as resolved.
Show resolved Hide resolved
setAssetType("");
setAssetStatus("");
setAssetClass("");
Expand Down
8 changes: 7 additions & 1 deletion src/Components/ExternalResult/ResultUpdate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,13 @@ export default function UpdateResult(props: any) {
});
if (res && data) {
setIsLocalbodyLoading(false);
setLocalBody([...initialLocalbodies, ...data]);
const transformedData = {
id: data.id,
name: data.name,
number: data.state,
};
sriharsh05 marked this conversation as resolved.
Show resolved Hide resolved
initialLocalbodies.push(transformedData);
sriharsh05 marked this conversation as resolved.
Show resolved Hide resolved
setLocalBody([...initialLocalbodies]);
sriharsh05 marked this conversation as resolved.
Show resolved Hide resolved
}
} else {
setLocalBody(initialLocalbodies);
Expand Down
21 changes: 10 additions & 11 deletions src/Components/Facility/FacilityCard.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { useState } from "react";
import { useDispatch } from "react-redux";
import { Link } from "raviger";
import { useTranslation } from "react-i18next";

import { sendNotificationMessages } from "../../Redux/actions";
import { FACILITY_FEATURE_TYPES } from "../../Common/constants";
import ButtonV2, { Cancel, Submit } from "../Common/components/ButtonV2";
import * as Notification from "../../Utils/Notifications.js";
Expand All @@ -14,26 +11,28 @@ import DialogModal from "../Common/Dialog";
import TextAreaFormField from "../Form/FormFields/TextAreaFormField";
import useConfig from "../../Common/hooks/useConfig";
import { classNames } from "../../Utils/utils";
import request from "../../Utils/request/request";
import routes from "../../Redux/api";

export const FacilityCard = (props: { facility: any; userType: any }) => {
const { facility, userType } = props;
const { kasp_string } = useConfig();

const { t } = useTranslation();
const dispatchAction: any = useDispatch();
const [notifyModalFor, setNotifyModalFor] = useState(undefined);
const [notifyMessage, setNotifyMessage] = useState("");
const [notifyError, setNotifyError] = useState("");

const handleNotifySubmit = async (id: any) => {
const data = {
facility: id,
message: notifyMessage,
};
if (data.message.trim().length >= 1) {
if (notifyMessage.trim().length >= 1) {
setNotifyError("");
const res = await dispatchAction(sendNotificationMessages(data));
if (res && res.status == 204) {
const { res } = await request(routes.sendNotificationMessages, {
body: {
facility: id,
message: notifyMessage,
},
});
if (res?.ok && res.status == 204) {
sriharsh05 marked this conversation as resolved.
Show resolved Hide resolved
Notification.Success({
msg: "Facility Notified",
});
Expand Down
Loading
Loading