diff --git a/Archive.zip b/Archive.zip new file mode 100644 index 0000000..8181363 Binary files /dev/null and b/Archive.zip differ diff --git a/dist.zip b/dist.zip deleted file mode 100644 index b42ef66..0000000 Binary files a/dist.zip and /dev/null differ diff --git a/src/App.jsx b/src/App.jsx index 8c0bdae..1243e4f 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,5 +1,6 @@ import { useState } from 'react'; import TimeSheet from './components/TimeSheet'; +import Help from './Help'; import ThemeToggle from './components/ThemeToggle'; import MiniCalendar from './components/MiniCalendar'; import { useTheme } from './hooks/useTheme'; @@ -10,14 +11,15 @@ function App() { const { isDark, toggleTheme } = useTheme(); const timesheetData = useTimeSheet(); const [showMobileCalendar, setShowMobileCalendar] = useState(false); + const [showHelp, setShowHelp] = useState(false); return (
{/* Top right controls */} -
+
{/* Desktop calendar - always visible on large screens */} -
+
setShowMobileCalendar(!showMobileCalendar)} - className="lg:hidden p-2 rounded-lg bg-gray-200 dark:bg-gray-700 hover:bg-gray-300 dark:hover:bg-gray-600 transition-colors" + className="lg:hidden p-2 rounded-lg bg-gray-200 dark:bg-gray-700 hover:bg-gray-300 dark:hover:bg-gray-600 transition-colors pointer-events-auto" aria-label="Toggle calendar" > - +
+ +
+
- {/* Mobile calendar dropdown */} + {/* Mobile calendar dropdown moved to content flow */} +
+ +
+ {showHelp ? ( + setShowHelp(false)} /> + ) : ( + <> {showMobileCalendar && ( -
+
{ @@ -48,10 +65,9 @@ function App() { />
)} -
- -
+ + )}
); diff --git a/src/Help.jsx b/src/Help.jsx new file mode 100644 index 0000000..4af65aa --- /dev/null +++ b/src/Help.jsx @@ -0,0 +1,90 @@ +import { ArrowLeft, Smartphone, Monitor, FileText, Share2, Upload } from 'lucide-react'; + +const Section = ({ title, children }) => ( +
+

{title}

+
{children}
+
+); + +export default function Help({ onBack }) { + return ( +
+
+
+

Troubleshooting & How-To

+ +
+ +
+
+
iPhone/iPad
+
    +
  • Use Share/Email PDF to attach via Share Sheet
  • +
  • If To isn’t filled, import the Office contact first
  • +
  • Find downloads in Files → Downloads
  • +
+
+
+
Android
+
    +
  • Pick Gmail or Email from the Share Sheet
  • +
  • Downloads are in Files/Downloads app
  • +
  • Add the Office contact to speed up addressing
  • +
+
+
+
Windows/Mac
+
    +
  • Use Download PDF then attach in Outlook/Mail
  • +
  • Export JSON to save/restore your timesheet
  • +
  • Subject should be: “Name - WeekRange Timesheet”
  • +
+
+
+ +
+
+
+
Download PDF
+
    +
  1. Tap Download PDF
  2. +
  3. Open your Downloads folder
  4. +
  5. Attach PDF to email, send to Office@CoastalContractingFL.com
  6. +
+
+
+
Share/Email PDF (mobile)
+
    +
  1. Tap Share/Email PDF
  2. +
  3. Choose Mail/Gmail from the sheet
  4. +
  5. Subject prefilled; select Office contact if needed
  6. +
+
+
+
Export / Import
+
    +
  1. Export saves a JSON backup
  2. +
  3. Import restores a saved JSON file
  4. +
  5. Useful when switching devices or browsers
  6. +
+
+
+
+ +
+
    +
  • Try another browser (Safari/Chrome/Edge)
  • +
  • Ensure pop-ups/downloads are allowed
  • +
  • Check your device storage isn’t full
  • +
  • Manually email to Office@CoastalContractingFL.com with subject “Name - WeekRange Timesheet”
  • +
+
+
+
+ ); +} + + diff --git a/src/components/DatePicker.jsx b/src/components/DatePicker.jsx index c4a639b..1ca1fb9 100644 --- a/src/components/DatePicker.jsx +++ b/src/components/DatePicker.jsx @@ -13,7 +13,7 @@ const DatePicker = ({ selectedDate, onDateChange, weekDays }) => { }; return ( -
+
@@ -21,7 +21,7 @@ const DatePicker = ({ selectedDate, onDateChange, weekDays }) => {
-
+
- + {formatWeekRange(weekDays)} diff --git a/src/components/DayEntries.jsx b/src/components/DayEntries.jsx index d4084bc..f60d99b 100644 --- a/src/components/DayEntries.jsx +++ b/src/components/DayEntries.jsx @@ -15,7 +15,7 @@ const SingleEntry = ({ }; return ( -
+