From f8c2788d869ee69ae1d99c267374d2a12778eec4 Mon Sep 17 00:00:00 2001 From: Derek Chen Date: Thu, 12 Feb 2026 23:52:00 -0600 Subject: [PATCH] feat: exporting to txt again (#733) * feat: initial functions for exporting to txt * feat: add save as text to calendar header new export option * docs: comment for saveAsText() * feat: generate text line by line for each course * docs: jsdoc * chore: lint * Apply suggestion from @doprz --------- Co-authored-by: Diego Perez <52579214+doprz@users.noreply.github.com> --- .../CalendarHeader/CalendarHeader.tsx | 16 +++++++- src/views/components/calendar/utils.ts | 40 +++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/src/views/components/calendar/CalendarHeader/CalendarHeader.tsx b/src/views/components/calendar/CalendarHeader/CalendarHeader.tsx index 78ed0a2f..14d3fd42 100644 --- a/src/views/components/calendar/CalendarHeader/CalendarHeader.tsx +++ b/src/views/components/calendar/CalendarHeader/CalendarHeader.tsx @@ -1,5 +1,5 @@ import { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react'; -import { CalendarDots, Export, FileCode, FilePng, Sidebar } from '@phosphor-icons/react'; +import { CalendarDots, Export, FileCode, FilePng, FileText, Sidebar } from '@phosphor-icons/react'; import styles from '@views/components/calendar/CalendarHeader/CalendarHeader.module.scss'; import { Button } from '@views/components/common/Button'; import DialogProvider from '@views/components/common/DialogProvider/DialogProvider'; @@ -11,7 +11,7 @@ import useSchedules from '@views/hooks/useSchedules'; import clsx from 'clsx'; import React from 'react'; -import { handleExportJson, saveAsCal, saveCalAsPng } from '../utils'; +import { handleExportJson, saveAsCal, saveAsText, saveCalAsPng } from '../utils'; interface CalendarHeaderProps { sidebarOpen?: boolean; @@ -111,6 +111,18 @@ export default function CalendarHeader({ sidebarOpen, onSidebarToggle }: Calenda Save as .json + + + {/*