Untitled
unknown
plain_text
a year ago
7.5 kB
6
Indexable
//for each number of object present in the questionsList we need to render this outer-accordian and on basis of answers object present in questionsList.answers, we need to render the inner-accordian. the statement "{+1}   Responses:" should be able to display the number objects in questionsList.answers as in the number of answers provided import React, { useState, useEffect } from 'react'; import { withPage, useAppState, Lift } from '@d-lift/core'; 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 = () => { useEffect(() => { loadResponseData(); }, []); const [responseData, setResponseData] = useState(null); const loadResponseData = async () => { try { Lift.spinner.show(); const data = [ { id: 0, questionsList: [ { rfiId: 0, id: 0, question: 'string', description: 'string', answers: [ { id: 0, quesnId: 0, answer: 'string', respondDt: '2024-06-06T05:46:37.758Z', state: 'string', }, ], }, ], title: 'string', description: 'string', reqDT: '2024-06-06T05:46:37.758Z', state: 'string', programs: 'string', category: 'string', status: 'string', dueDT: '2024-06-06', pocId: 0, offering: 'string', }, ]; // const data = await webService.getFullDetails(); if (data) { console.log('data', data); console.log('data.data :', data.data); setResponseData(data); 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, AccordianElementData, Label, 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="question"></Label> {/* OUTER COLLAPSE PANEL COMPONENTS */} <Accordian id="outer-accordian" className="remove-padding"> <AccordianElement headerText="Item 2"> <Label>{+1}   Responses:</Label> <Accordian id="inner-accordian"> {/* INNER COLLAPSE PANEL COMPONENTS */} <AccordianElement headerText="Item 1"> <AccordianElementData>This is a sample text</AccordianElementData> <AccordianElementData>This is a sample text</AccordianElementData> </AccordianElement> </Accordian> </AccordianElement> </Accordian> </div> ); }; Questions.propTypes = { index: PropTypes.number.isRequired, }; export default Questions;
Editor is loading...
Leave a Comment