Untitled
unknown
plain_text
a year ago
6.3 kB
7
Indexable
import React, { useState, useEffect } from 'react';
import { withPage, Lift, useAppState } from '@d-lift/core';
import { useLocation } from 'react-router-dom';
import BodySection from '@/Layout/BodySection';
import webService from '@/Services/WebService';
import Questions from './Components/Questions';
import { Button, Label, Column, Page, Header, Row, Para } from '@d-lift/uxcomponents';
import './response.scss';
const RFIResponse = () => {
const location = useLocation();
const [responseData, setResponseData] = useAppState('responseData', []);
const [rfiObj, setRfiObj] = useAppState('rfiObj', location.state?.model?.rfi || {});
useEffect(() => {
loadResponseData(rfiObj);
}, [rfiObj]);
const loadResponseData = async (rfi) => {
try {
Lift.spinner.show();
const response = await webService.getFullDetails({
requestBody: { rfiId: rfi?.id },
});
console.log(response);
if (response && response.data) {
const formattedData = response.data.questions.map((question) => ({
...question,
}));
setResponseData(formattedData);
Lift.Application.Notification.success('Response Data loaded successfully');
}
} catch (error) {
console.log(error);
Lift.Application.Notification.error('Failed to load Response Data');
} finally {
Lift.spinner.hide();
}
};
return (
<Page>
<BodySection>
<div className="ux-rfi-grey-border w-100 mt-3">
<Header
className="pt-3 ux-rfi-font-header"
size="2"
labelKey="RFI_Title"></Header>
<Row>
<Column className="col-9">
<Row className="d-flex flex-wrap">
<Para
labelKey="very_much_longer"
className="mr-2 mt-2 p-1 ml-3 ux-rfi-label-normal ux-rfi-green-label"></Para>
<Para
labelKey="selection_1"
className="ux-rfi-green-label mt-2 mr-2 p-1 ux-rfi-label-normal"></Para>
<Para
labelKey="selection_1"
className="ux-rfi-green-label mt-2 mr-2 p-1 ux-rfi-label-normal"></Para>
<Para
labelKey="selection_1"
className="ux-rfi-green-label mt-2 mr-2 p-1 ux-rfi-label-normal"></Para>
<Para
labelKey="selection_1"
className="ux-rfi-green-label mt-2 p-1 ux-rfi-label-normal"></Para>
</Row>
</Column>
<Column>
<div className="ux-rfi-grey-border">
<Label
labelKey="requested_by"
className="mt-1 ux-rfi-label-normal ux-rfi-grey-font"></Label>
<Para labelKey="massachusetts" className="ux-rfi-bold"></Para>
<Label
labelKey="due"
className="mt-1 ux-rfi-label-normal ux-rfi-grey-font"></Label>
<Para labelKey="nov_15" className="ux-rfi-bold"></Para>
<Label
labelKey="responses"
className="mt-1 ux-rfi-label-normal ux-rfi-grey-font"></Label>
<Para labelKey="18_of_30" className="ux-rfi-bold"></Para>
<div className="m-0 p-1">
<Button
id="summarizeBtn"
size="small"
className="ux-rfi-green-button"
// click={}
labelKey="summarize_btn"></Button>
</div>
</div>
</Column>
</Row>
</div>
<div className="ux-rfi-grey-border w-100 mt-3">
<Para labelKey="content" className="mt-2 scrollable-content"></Para>
</div>
<Questions responseData={responseData}></Questions>
</BodySection>
</Page>
);
};
export default withPage(
{
Description: 'Respond to an RFI page',
ContentManager: true,
LayoutStyle: 'rfi-dashboard',
},
RFIResponse,
);
import React from 'react';
import { Accordian, AccordianElement, Label, Button, Para } from '@d-lift/uxcomponents';
import PropTypes from 'prop-types';
import '@/Validations/customValidations';
const Questions = ({ responseData }) => {
return (
<div className="ux-rfi-green-border mt-4">
<Label labelKey="Questions"></Label>
{responseData?.map((question, index) => (
<Accordian id={`outer-accordian-${index}`} key={question.id}>
<AccordianElement headerText={question.question}>
<Label>No Responses Available</Label>
<Button
id={`respond-btn-${index}`}
size="small"
className="ux-rfi-green-button float-right mt-4 mb-2"
labelKey="respond_question"
// click={() => Navigate.to('/create-rfi')}
></Button>
</AccordianElement>
</Accordian>
))}
</div>
);
};
Questions.propTypes = {
responseData: PropTypes.array.isRequired,
};
export default Questions;
Editor is loading...
Leave a Comment