Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 98 additions & 45 deletions components/ArchiveSummaries.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,22 @@ const ArchiveSummaries = () => {
workgroup: myVariable.summary?.workgroup || "",
meetingSummary: generateMarkdown(myVariable.summary),
meeting_id: myVariable.summary?.meeting_id || "",
confirmed: myVariable.summary?.confirmed || false
confirmed: myVariable.summary?.confirmed || false,
noSummaryGivenText: myVariable.summary?.noSummaryGivenText || "",
canceledSummaryText: myVariable.summary?.canceledSummaryText || ""
});
const [commitToGitBook, setCommitToGitBook] = useState(true);
const [sendToDiscord, setSendToDiscord] = useState(true);
const [renderedMarkdown, setRenderedMarkdown] = useState("");
const formattedDate = new Date(formData.date).toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });

// Determine which text value to use based on summary type:
const summaryText = myVariable.summary.noSummaryGiven
? formData.noSummaryGivenText
: myVariable.summary.canceledSummary
? formData.canceledSummaryText
: formData.meetingSummary;

useEffect(() => {
setRenderedMarkdown(formData.meetingSummary);
console.log(formData.meetingSummary, myVariable.summary)
Expand All @@ -38,7 +47,9 @@ const ArchiveSummaries = () => {
workgroup: myVariable.summary?.workgroup || "",
meetingSummary: generateMarkdown(myVariable.summary, currentOrder),
meeting_id: myVariable.summary?.meeting_id || "",
confirmed: myVariable.summary?.confirmed || false
confirmed: myVariable.summary?.confirmed || false,
noSummaryGivenText: myVariable.summary?.noSummaryGivenText || "",
canceledSummaryText: myVariable.summary?.canceledSummaryText || ""
});
setRenderedMarkdown(generateMarkdown(myVariable.summary, currentOrder));
}
Expand All @@ -57,12 +68,26 @@ const ArchiveSummaries = () => {
if (type === "checkbox") {
const checked = (e.target as HTMLInputElement).checked;
name === "commitToGitBook" ? setCommitToGitBook(checked) : setSendToDiscord(checked);
} else if (name == 'date' && (myVariable.summary?.noSummaryGiven == true || myVariable.summary?.canceledSummary == true)) {
console.log(myVariable, formData, value)
setFormData({ ...formData, [name]: value, confirmed: false });
} else if (myVariable.summary.noSummaryGiven) {
// Update the noSummaryGiven text field when in that mode
setFormData((prev) => ({
...prev,
noSummaryGivenText: value,
}));
setSendToDiscord(false);
} else if (myVariable.summary.canceledSummary) {
// Update the canceledSummary text field when in that mode
setFormData((prev) => ({
...prev,
canceledSummaryText: value,
}));
setSendToDiscord(false);
} else {
setFormData({ ...formData, [name]: value });
// Regular meeting summary update
setFormData((prev) => ({
...prev,
[name]: value,
}));
}
if (name === 'meetingSummary') {
adjustTextareaHeight();
Expand All @@ -73,10 +98,37 @@ const ArchiveSummaries = () => {
async function handleSubmit(e: React.FormEvent) {
e.preventDefault();
setLoading(true);
if (myVariable.summary?.noSummaryGiven == true || myVariable.summary?.canceledSummary == true) {
const data: any = await saveCustomAgenda(myVariable.summary);
console.log(data);
}

let currentMeetingId = formData.meeting_id;

// If this is a noSummary or canceled summary and meeting_id is missing, save first
if ((myVariable.summary?.noSummaryGiven || myVariable.summary?.canceledSummary) && !currentMeetingId) {
// Merge the updated text fields from formData into the summary object
const updatedSummary = {
...myVariable.summary,
noSummaryGivenText: formData.noSummaryGivenText,
canceledSummaryText: formData.canceledSummaryText,
};
const data: any = await saveCustomAgenda(updatedSummary);
if (data && data[0]?.meeting_id) {
currentMeetingId = data[0].meeting_id;
// Update context and state with the new meeting_id
setMyVariable(prev => ({
...prev,
summary: {
...prev.summary,
meeting_id: currentMeetingId,
noSummaryGivenText: formData.noSummaryGivenText,
canceledSummaryText: formData.canceledSummaryText,
}
}));
setFormData(prev => ({
...prev,
meeting_id: currentMeetingId
}));
}
}

// Check if there are any confirmed summaries with the same date
const isDuplicateConfirmedSummary = myVariable.summaries.some((summary: any) => {
// Convert both dates to Date objects to strip off the time part
Expand All @@ -94,41 +146,36 @@ const ArchiveSummaries = () => {
}

if (!formData.confirmed) {
const payload = { ...formData, meeting_id: currentMeetingId };
if (commitToGitBook) {
const data = await updateGitbook(formData);
const data = await updateGitbook(payload);
if (data) {
setMyVariable(prevState => ({
...prevState,
summary: {
...prevState.summary,
confirmed: true,
},
summary: { ...prevState.summary, confirmed: true },
}));
}
} else {
await confirmedStatusUpdate(formData);
await confirmedStatusUpdate(payload);
setMyVariable(prevState => ({
...prevState,
summary: {
...prevState.summary,
confirmed: true,
},
summary: { ...prevState.summary, confirmed: true },
}));
}

if (sendToDiscord) {
await sendDiscordMessage(myVariable, renderedMarkdown);
}
} else {
if (myVariable.summary.noSummaryGiven == true || myVariable.summary.canceledSummary == true) {
alert('Select a date')
if (myVariable.summary.noSummaryGiven || myVariable.summary.canceledSummary) {
alert('Select a date');
} else {
alert('Summary already archived');
}
}

setLoading(false);
}
}

return (
<div className={styles['main-container']}>
Expand All @@ -155,6 +202,7 @@ const ArchiveSummaries = () => {
onChange={handleChange}
className={styles['form-input']}
/>

<label className={styles['form-label']}>
Workgroup:
</label>
Expand All @@ -166,40 +214,45 @@ const ArchiveSummaries = () => {
className={styles['form-input']}
autoComplete="off"
/>

<label className={styles['form-label']}>
Meeting Summary Markdown:
</label>
<textarea
ref={textareaRef}
name="meetingSummary"
value={formData.meetingSummary}
name="meetingSummary"
value={summaryText}
onChange={handleChange}
className={styles['meeting-summary-textarea']}
autoComplete="off"
/>

<button type="submit" disabled={loading} className={styles['submit-button']}>
{loading ? "Loading..." : "Submit"}
</button>

<div className={styles['form-checkbox']}>
<input
type="checkbox"
id="commitToGitBook"
name="commitToGitBook"
checked={commitToGitBook}
onChange={handleChange}
/>
<label htmlFor="commitToGitBook">Commit to GitBook</label>
</div>
<div className={styles['form-checkbox']}>
<input
type="checkbox"
id="sendToDiscord"
name="sendToDiscord"
checked={sendToDiscord}
onChange={handleChange}
/>
<label htmlFor="sendToDiscord">Send Discord Message</label>
</div>
<input
type="checkbox"
id="commitToGitBook"
name="commitToGitBook"
checked={commitToGitBook}
onChange={handleChange}
/>
<label htmlFor="commitToGitBook">Commit to GitBook</label>
</div>

<div className={styles['form-checkbox']}>
<input
type="checkbox"
id="sendToDiscord"
name="sendToDiscord"
checked={sendToDiscord}
onChange={handleChange}
/>
<label htmlFor="sendToDiscord">Send Discord Message</label>
</div>

</form>
</div>
<div className={styles['markdown-rendered']}>
Expand Down
4 changes: 3 additions & 1 deletion components/SummaryTemplate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,9 @@ const defaultFormData = {
tags: { topicsCovered: "", emotions: "", other: "", gamesPlayed: "" },
type: "Custom",
noSummaryGiven: false,
canceledSummary: false
canceledSummary: false,
noSummaryGivenText: "No Summary Given",
canceledSummaryText: "Meeting was cancelled"
};

function formatTimestampForPdf(timestamp: any) {
Expand Down
10 changes: 9 additions & 1 deletion pages/submit-meeting-summary/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,8 @@ const SubmitMeetingSummary: NextPage = () => {
type: "Custom",
noSummaryGiven: false,
canceledSummary: false,
noSummaryGivenText: "No Summary Given",
canceledSummaryText: "Meeting was cancelled",
updated_at: new Date()
};

Expand Down Expand Up @@ -403,7 +405,9 @@ const SubmitMeetingSummary: NextPage = () => {
updated_at: new Date(),
confirmed: false,
noSummaryGiven: false,
canceledSummary: false
canceledSummary: false,
noSummaryGivenText: "No Summary Given",
canceledSummaryText: "Meeting was cancelled"
};
setMyVariable((prev) => ({
...prev,
Expand Down Expand Up @@ -442,6 +446,8 @@ const SubmitMeetingSummary: NextPage = () => {
type: "Custom",
noSummaryGiven: false,
canceledSummary: false,
noSummaryGivenText: "No Summary Given",
canceledSummaryText: "Meeting was cancelled",
updated_at: new Date()
};
setMyVariable((prev) => ({
Expand Down Expand Up @@ -469,6 +475,7 @@ const SubmitMeetingSummary: NextPage = () => {
tags: {},
noSummaryGiven: true,
canceledSummary: false,
noSummaryGivenText: "No Summary Given",
updated_at: new Date()
};
setMyVariable((prev) => ({
Expand All @@ -495,6 +502,7 @@ const SubmitMeetingSummary: NextPage = () => {
tags: {},
noSummaryGiven: false,
canceledSummary: true,
canceledSummaryText: "Meeting was cancelled",
updated_at: new Date()
};
setMyVariable((prev) => ({
Expand Down
6 changes: 6 additions & 0 deletions utils/confirmedStatusUpdate.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@ import { supabase } from "../lib/supabaseClient";
import { tableNames } from '../config/config';

export async function confirmedStatusUpdate(formData) {

if (!formData.meeting_id) {
console.error('Cannot update confirmed status: meeting_id is missing');
return false;
}

let updates = {
meeting_id: formData.meeting_id,
confirmed: true
Expand Down
9 changes: 4 additions & 5 deletions utils/generateMarkdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -242,12 +242,11 @@ export function generateMarkdown(summary, order) {
if (gamesPlayed) markdown += `- **games played:** ${gamesPlayed}\n`;
}

if (summary.noSummaryGiven == true) {
markdown += `No Summary Given \n`;
if (summary.noSummaryGiven === true) {
markdown += `${summary.noSummaryGivenText || "No Summary Given"}\n`;
}
//canceledSummary
if (summary.canceledSummary == true) {
markdown += `Meeting was cancelled \n`;
if (summary.canceledSummary === true) {
markdown += `${summary.canceledSummaryText || "Meeting was cancelled"}\n`;
}
return markdown;
};
9 changes: 6 additions & 3 deletions utils/prepareFormDataForSave.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// ../utils/prepareFormDataForSave.ts

export function prepareFormDataForSave(rawData: any) {
const filteredWorkingDocs = rawData.meetingInfo.workingDocs.filter(
const filteredWorkingDocs = rawData.meetingInfo?.workingDocs?.filter(
(doc: any) => doc.title || doc.link
);
let newData = {
Expand All @@ -10,8 +10,11 @@ export function prepareFormDataForSave(rawData: any) {
...rawData.meetingInfo,
workingDocs: filteredWorkingDocs,
},
noSummaryGiven: false,
canceledSummary: false,
noSummaryGiven: rawData.noSummaryGiven || false,
canceledSummary: rawData.canceledSummary || false,
noSummaryGivenText: rawData.noSummaryGivenText || "",
canceledSummaryText: rawData.canceledSummaryText || "",
type: 'custom'
};

// Specify the root-level keys you want to remove
Expand Down