handleWorkshopWorksheetChange -- add new comment in iro

PHOTO EMBED

Thu Sep 19 2024 09:52:40 GMT+0000 (Coordinated Universal Time)

Saved by @alfred.roshan

handleWorkshopWorksheetChange = (e, item, key) => {
    console.log("handleWorkshopWorksheetChange", item, e, key);
    const { selectedworkshop, surveyId, consultantId, answeredTopics } = this.state;
    console.log("selectedworkshop", selectedworkshop);
    const itemFind = selectedworkshop.worksheet.find(item2 =>
      item['id'] ? item['id'] == item2['id'] : item['code'] == item2['code'],
    );

    // console.log('e', e);
    // console.log('item', item);
    // console.log('key', key);
    console.log('itemFind', itemFind);

    if (itemFind) {
      console.log("edit condition entered");
      if (key) {
        itemFind[key] = e;

        this.setState({
          selectedworkshop: { ...selectedworkshop, worksheet: [...selectedworkshop.worksheet] },
        });

        // console.log('item', item);
        // console.log('itemFind', itemFind);
        // console.log('selectedworkshop.worksheet', selectedworkshop.worksheet);

        return;
      }

      if (e.target.name == 'Consolidated Level') {
        if (e.target.value == 'Yes') {
          itemFind['Entity-Specific'] = null;
          itemFind['Country-Specific'] = null;
          itemFind['Sector-Specific'] = null;
        }
      }

      itemFind[e.target.name] = e.target.value;

      this.setState({
        selectedworkshop: { ...selectedworkshop, worksheet: [...selectedworkshop.worksheet] },
      });

      const newAnswered = Array.from(this.state.answeredTopics || []);
      const answerData = newAnswered.find(ans => ans.id === item.id);
      console.log("answerData in edit condition", answerData)
      if (answerData) {
        answerData[e.target.name] = e.target.value;
        console.log('3');
        this.setState({
          answeredTopics: newAnswered,
        });
        const workshopId = selectedworkshop.id;

        editAnsweredTopicComment(
          {
            surveyId,
            consultantId,
            workshopId,
          },
          itemFind,
        )
          .then(response => {
            console.log('Added new comment', response);
          })
          .catch(error => {
            console.log('error adding new row');
          });

        // const matrixWorkshopsRef = firebase
        //   .firestore()
        //   .collection(this.state.consultantId ? 'portfolio-surveys-consultants' : 'surveys')
        //   .doc(this.state.surveyId ? this.state.surveyId : this.state.currentSurveyId);

        // matrixWorkshopsRef
        //   .update({
        //     answeredTopics: newAnswered,
        //   })
        //   .then(() => {
        //     console.log(`Added new row`);
        //   })
        //   .catch(error => {
        //     console.log('error adding new row');
        //   });
      }
    }
    // Add new entry
    else {
      console.log("Add new entry");
      const itemFind = {
        ...item,
      };

      const newWorksheet = [...selectedworkshop.worksheet];

      if (key) {
        itemFind[key] = e;

        newWorksheet.push(itemFind);
        selectedworkshop.worksheet = newWorksheet;

        this.setState({
          selectedworkshop: { ...selectedworkshop, worksheet: [...newWorksheet] },
        });

        return;
      }

      if (e.target.name == 'Consolidated Level') {
        if (e.target.value == 'Yes') {
          itemFind['Entity-Specific'] = null;
          itemFind['Country-Specific'] = null;
          itemFind['Sector-Specific'] = null;
        }
      }

      itemFind[e.target.name] = e.target.value;

      newWorksheet.push(itemFind);
      selectedworkshop.worksheet = newWorksheet;

      this.setState({
        selectedworkshop: { ...selectedworkshop, worksheet: [...newWorksheet] },
      });

      console.log("answeredTopics in state", answeredTopics)
      const newAnswered = Array.from(answeredTopics || []);
      console.log("newAnswered", newAnswered)
      const answerData = newAnswered.find(ans => ans.id === item.id);
      console.log("answerData", answerData)
      console.log("itemFind", itemFind)
      if (answerData) {
        answerData[e.target.name] = e.target.value; doubt
        console.log('5');
        this.setState({
          answeredTopics: newAnswered,
        });

        addAnsweredTopicComment({
          surveyId,
          consultantId,
        }, itemFind)
          .then(response => {
            console.log('Added new comment', response);
          })
          .catch(error => {
            console.log('error adding new row');
          });

        // const matrixWorkshopsRef = firebase
        //   .firestore()
        //   .collection(this.state.consultantId ? 'portfolio-surveys-consultants' : 'surveys')
        //   .doc(this.state.surveyId ? this.state.surveyId : this.state.currentSurveyId);

        // matrixWorkshopsRef
        //   .update({
        //     answeredTopics: newAnswered,
        //   })
        //   .then(() => {
        //     console.log(`Added new row`);
        //   })
        //   .catch(error => {
        //     console.log('error adding new row');
        //   });
      }
    }
  };
content_copyCOPY