diff --git a/help/_plugins/SitePostRender.rb b/help/_plugins/SitePostRender.rb index b0cdd7968b41..cfc06404436c 100644 --- a/help/_plugins/SitePostRender.rb +++ b/help/_plugins/SitePostRender.rb @@ -143,7 +143,7 @@ def self.generate_ts_output(import_block, help_content_string) type HelpContent = { /** The content to display for this route */ - content: ContentComponent; + content?: ContentComponent; /** Any children routes that this route has */ children?: Record; diff --git a/help/ref/:action/:iouType/start/:transactionID/:reportID/distance/:backToReport/index.md b/help/ref/:action/:iouType/start/:transactionID/:reportID/distance/:backToReport/index.md new file mode 100644 index 000000000000..0783c7bd387e --- /dev/null +++ b/help/ref/:action/:iouType/start/:transactionID/:reportID/distance/:backToReport/index.md @@ -0,0 +1,14 @@ +--- +layout: product +title: Distance Expense +--- + +# Distance Expense + +Easily track mileage costs using Expensify's built-in map feature. Create and submit distance-based expenses right from the web, desktop, or mobile app. + +- **Create distance expenses:** Click the green + button and choose Create expense, then select Distance. Enter your starting point and destination. You can also add stops if needed. + +- **Submit for approval:** Choose your workspace and confirm the distance, amount, and date. Add optional notes or categories, then click Create expense to submit the mileage expense for approval. + +- **Log a round-trip:** To log a round-trip, use the same location for both start and finish, and include any stops along the way. \ No newline at end of file diff --git a/help/ref/new/task/index.md b/help/ref/new/task/index.md new file mode 100644 index 000000000000..387084178a62 --- /dev/null +++ b/help/ref/new/task/index.md @@ -0,0 +1,16 @@ +--- +layout: product +title: Tasks +--- + +# Tasks + +Keep conversations organized by letting you create actionable to-dos directly within a chat. You can assign them to yourself or others in both 1:1 and group chats. + +- **Create a task:** In any chat, click the + button next to the message field and select Assign a task. Add a title (required) and an optional description, and choose an assignee from chat participants. You can also leave it unassigned to track it yourself. + +- **Use tasks to stay on top of action items:** Tasks are great for follow-ups like “Submit expense report,” “Share slide deck,” or “Update mileage rate.” They're perfect for 1:1 check-ins, project updates, or organizing next steps after a team discussion. + +- **Edit and manage tasks:** Task creators and assignees can comment, edit the title or description, reassign the task, or mark it as complete. Just click the task to update any details. + +- **Tasks stay visible:** Each task is shared in the chat where it's created. When completed, it will be clearly marked in the chat and can be reopened if needed. \ No newline at end of file diff --git a/help/ref/r/:policyAnnounce/index.md b/help/ref/r/:policyAnnounce/index.md new file mode 100644 index 000000000000..0a7b09c893c3 --- /dev/null +++ b/help/ref/r/:policyAnnounce/index.md @@ -0,0 +1,14 @@ +--- +layout: product +title: Announce Room (#announce) +--- + +# Announce Room (#announce) + +The #announce room is a chat space available to all workspace members. It's perfect for sharing company-wide updates, policy changes, or event reminders. The #announce room is accessible from your **Inbox** in the left-hand menu. + +- **Post company-wide announcements:** All members can post in #announce by default, making it easy to communicate across the workspace. + +- **Restrict posting to admins:** Workspace admins can limit posting to admins only. Open the #announce room, click the room header, select Settings, and change Who can post to Admins only. + +- **Everyone can read messages:** Even if posting is limited to admins, all workspace members can still view messages in the #announce room. \ No newline at end of file diff --git a/src/components/SidePanel/HelpComponents/HelpContent.tsx b/src/components/SidePanel/HelpComponents/HelpContent.tsx index 8c2c85ca6f03..61c6cd49f92b 100644 --- a/src/components/SidePanel/HelpComponents/HelpContent.tsx +++ b/src/components/SidePanel/HelpComponents/HelpContent.tsx @@ -61,8 +61,16 @@ function HelpContent({closeSidePanel}: HelpContentProps) { const cleanedPath = path.replaceAll('?', ''); const expenseType = getExpenseType(transaction); - const reportOverride = expenseType ? `:${CONST.REPORT.HELP_TYPE.EXPENSE}/:${expenseType}` : `:${getHelpPaneReportType(report)}`; - return cleanedPath.replaceAll(':reportID', reportOverride); + + if (expenseType) { + return cleanedPath.replaceAll(':reportID', `:${CONST.REPORT.HELP_TYPE.EXPENSE}/:${expenseType}`); + } + + if (report) { + return cleanedPath.replaceAll(':reportID', `:${getHelpPaneReportType(report)}`); + } + + return cleanedPath; }, [routeName, transaction, report]); const wasPreviousNarrowScreen = useRef(!isExtraLargeScreenWidth); diff --git a/src/components/SidePanel/HelpContent/helpContentMap.tsx b/src/components/SidePanel/HelpContent/helpContentMap.tsx index 57ff9b2d5157..b77e8a4aa916 100644 --- a/src/components/SidePanel/HelpContent/helpContentMap.tsx +++ b/src/components/SidePanel/HelpContent/helpContentMap.tsx @@ -13,7 +13,7 @@ type ContentComponent = (props: {styles: ThemeStyles}) => ReactNode; type HelpContent = { /** The content to display for this route */ - content: ContentComponent; + content?: ContentComponent; /** Any children routes that this route has */ children?: Record; @@ -23,24 +23,21 @@ type HelpContent = { }; const helpContentMap: HelpContent = { - content: () => null, children: { - r: { + home: { content: ({styles}: {styles: ThemeStyles}) => ( - <> - Chat - - Chat is the foundation of New Expensify. Every expense, expense report, workspace, or member has an associated "chat", which you can use to record additional details, + + Chat + + Chat is the foundation of New Expensify. Every expense, expense report, workspace, or member has an associated “chat”, which you can use to record additional details, or collaborate with others. Every chat has the following components: - Header - + This shows who you are chatting with (or what you are chatting about). You can press the header for more details on the chat, or additional actions to take upon it. - Comments - The core of the chat are its comments, which come in many forms: + The core of the chat are its comments, which come in many forms: , ]} /> - Actions - Hover (or long press) on a comment to see additional options, including: + Hover (or long press) on a comment to see additional options, including: , ]} /> - Composer - Use the composer at the bottom to write new messages: + Use the composer at the bottom to write new messages: Markdown - Format text using bold, italics, - and more. + and{' '} + + more + + . , Mention - Invite or tag anyone in the world to any chat by putting an @ in front of their email address or phone number @@ -93,12 +95,10 @@ const helpContentMap: HelpContent = { ]} /> - - Inbox - The Inbox is a prioritized "to do" list, highlighting exactly what you need to do next. It consists of: - + Inbox + The Inbox is a prioritized “to do” list, highlighting exactly what you need to do next. It consists of: Priorities - At the top of the Inbox are the most important tasks you should do first, which include: + At the top of the Inbox are the most important tasks you should do first, which include: Anything you have pinned, ]} /> - Chats - Beneath the priorities are a list of chats (with unread chats highlighted in bold), in one of two view modes: + Beneath the priorities are a list of chats (with unread chats highlighted in bold), in one of two view modes: , ]} /> - + ), + }, + ':action': { children: { - ':policyAdmins': { + ':iouType': { + children: { + start: { + children: { + ':transactionID': { + children: { + ':reportID': { + children: { + distance: { + children: { + ':backToReport': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Distance Expense + + Easily track mileage costs using Expensify’s built-in map feature. Create and submit distance-based expenses right + from the web, desktop, or mobile app. + + + + Create distance expenses: Click the green + button and choose Create + expense, then select Distance. Enter your starting point and destination. You can also add stops if + needed. + + , + + + Submit for approval: Choose your workspace and confirm the distance, + amount, and date. Add optional notes or categories, then click Create expense to submit the mileage + expense for approval. + + , + + + Log a round-trip: To log a round-trip, use the same location for both + start and finish, and include any stops along the way. + + , + ]} + /> + + ), + }, + }, + }, + scan: { + children: { + ':backToReport': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Scan Receipt + SmartScan automatically extracts expense details from receipt images. + How to Scan + + What SmartScan Detects + + Amount and currency + , + + Merchant name and location + , + + Date of purchase + , + + Tax information (when visible) + , + + Category suggestions based on merchant type + , + ]} + /> + Supported Receipt Types + + Photos - Take with your device camera + , + + Email receipts - Forward to receipts@expensify.com + , + + PDF receipts - Upload from your device + , + + Screenshots - From apps or websites + , + ]} + /> + Tips for Best Results + Ensure receipt text is clear and readable, + Include the full receipt in the image, + Good lighting improves accuracy, + Straight angles work better than tilted photos, + ]} + /> + After Scanning + Review extracted details for accuracy, + Add description, category, or tags as needed, + SmartScan learns from your corrections, + ]} + /> + Related Links + + + Create an Expense + + , + + + Free Features in Expensify + + , + ]} + /> + + ), + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + r: { + children: { + ':concierge': { content: ({styles}: {styles: ThemeStyles}) => ( - <> - #admins - - Every workspace automatically receives a special #admins chat room. Every admin is automatically added to this room as a member. The #admins room is used for - several purposes: + + Concierge + + Concierge is available 24/7 to answer any question you have about anything — whether that’s how to get set up, how to fix a problem, or general best + practices. Concierge is a bot, but it’s really smart and can escalate you to a human whenever you want. Say hi — it’s friendly! + + ), + }, + ':expense': { + children: { + ':scan': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Scanned + A “scanned” expense was created by extracting the relevant details using the Concierge AI. + + ), + }, + ':manual': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Manual + + A “manual” expense has had all its details specified by the workspace member. It was not imported from any system, or scanned from a receipt. + + + ), + }, + ':pendingExpensifyCard': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Expensify Card (pending) + + A “pending” Expensify Card expense represents a purchase that was recently made on the card, but has not yet “posted” – meaning, it has not been + formally recognized as a final, complete transaction. + + Any changes made to this expense will be preserved when the expense posts, typically 2-7 days later. + Pending transactions cannot be approved, as the final expense amount will not be confirmed until it posts. + + ), + }, + ':expensifyCard': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Expensify Card + An “Expensify Card” expense corresponds to a “posted” (meaning, finalized by the bank) purchase. + + Expensify Card expenses cannot be reimbursed as they are centrally paid by the bank account linked to the workspace. + + + ), + }, + }, + content: ({styles}: {styles: ThemeStyles}) => ( + + Expense + Every expense gets a dedicated chat to discuss that specific expense. The expense consists of: - Talking with Concierge, your setup specialist, or your account manager - When you first create the workspace, - Concierge and a setup specialist will be added. Feel free to ask any setup questions you have about how to configure the workspace, onboard your team, - connect your accounting, or anything else you might need. + Receipt – Attach a photo or document to this expense. + , + + Amount – The financial total of this transaction. + , + + Description – A general explanation of what this expense was for. , - Monitoring workspace changes - Every #admins room shows an audit trail of any configuration changes or - significant events happening inside the workspace. + Merchant – The business this purchase was made at. , - Chatting with other admins - The #admins room is a useful space for workspace admins to chat with each other - about anything, whether or not it relates to Expensify. + Date – The day on which the purchase was made. , ]} /> - - ), - }, - ':concierge': { - content: ({styles}: {styles: ThemeStyles}) => ( - <> - Concierge - - Concierge is available 24/7 to answer any question you have about anything, whether that's how to get set up, how to fix a problem, or general best practices. - Concierge is a bot, but is really smart, and can escalate you to a human whenever you want. Say hi, it's friendly! + + The expense chat is shared with everyone in the approval flow, and will maintain an audit trail of all historical changes. - + ), }, - ':policyExpenseChat': { + ':policyAdmins': { content: ({styles}: {styles: ThemeStyles}) => ( - <> - Workspace - - - Every workspace member gets a special chat between them and all workspace admins. This is a good place for workspace members to ask questions about expense - policy, for workspace admins to explain changes, or for any "formal" conversation to occur between members and admins. Press the attach button to: + + #admins + + Every workspace automatically receives a special #admins chat room. Every admin is automatically added to this room as a member. The #admins room is used for + several purposes: - Create expense - This will submit an expense to the workspace for reimbursement. + + Talking with Concierge, your setup specialist, or your account manager – When you first create the workspace, + Concierge and a setup specialist will be added. Feel free to ask any setup questions you have about how to configure the workspace, onboard your + team, connect your accounting, or anything else you might need. + , - Split expense - This will split an expense between the member and the workspace (e.g., for a business meal that - brings a spouse). + + Monitoring workspace changes – Every #admins room shows an audit trail of any configuration changes or + significant events happening inside the workspace. + + , + + + Chatting with other admins – The #admins room is a useful space for workspace admins to chat with each other + about anything, whether or not it relates to Expensify. + , ]} /> - - All past expense reports are processed here and stored for historical reference. - + ), }, - ':expenseReport': { + ':policyExpenseChat': { content: ({styles}: {styles: ThemeStyles}) => ( - <> - Expense Report - Every expense report gets a dedicated chat to discuss expenses, approvals, or anything you like. The expense report chat: + + Workspace + + Every workspace member gets a special chat between them and all workspace admins. This is a good place for workspace members to ask questions about expense + policy, for workspace admins to explain changes, or for any “formal” conversation to occur between members and admins. Press the attach button to: + Is shared with everyone in the approval flow configured inside the workspace., - Will maintain an audit trail of all historical workflow actions (i.e., approvals)., + + Create expense – This will submit an expense to the workspace for reimbursement. + , + + Split expense – This will split an expense between the member and the workspace (e.g., for a business meal that + brings a spouse). + , ]} /> - - - Press the attach button to add more expenses, or press the header for more options. Press on any expense to go deeper. - - + All past expense reports are processed here and stored for historical reference. + ), }, - ':expense': { + ':policyAnnounce': { content: ({styles}: {styles: ThemeStyles}) => ( - <> - Expense - Every expense gets a dedicated chat to discuss that specific expense. The expense consists of: + + Announce Room (#announce) + + The #announce room is a chat space available to all workspace members. It’s perfect for sharing company-wide updates, policy changes, or event reminders. The + #announce room is accessible from your Inbox in the left-hand menu. + - Receipt - Attach a photo or document to this expense. - , - - Amount - The financial total of this transaction. - , - - Description - A general explanation of what this expense was for. + + Post company-wide announcements: All members can post in #announce by default, making it easy to communicate + across the workspace. + , - Merchant - The business this purchase was made at. + + Restrict posting to admins: Workspace admins can limit posting to admins only. Open the #announce room, click + the room header, select Settings, and change Who can post to Admins only. + , - Date - The day on which the purchase was made. + + Everyone can read messages: Even if posting is limited to admins, all workspace members can still view + messages in the #announce room. + , ]} /> - - - The expense chat is shared with everyone in the approval flow, and will maintain an audit trail of all historical changes. + + ), + }, + ':expenseReport': { + content: ({styles}: {styles: ThemeStyles}) => ( + + Expense Report + Every expense report gets a dedicated chat to discuss expenses, approvals, or anything you like. The expense report chat: + Is shared with everyone in the approval flow configured inside the workspace., + Will maintain an audit trail of all historical workflow actions (i.e., approvals)., + ]} + /> + + Press the attach button to add more expenses, or press the header for more options. Press on any expense to go deeper. - + ), - children: { - ':manual': { - content: ({styles}: {styles: ThemeStyles}) => ( - <> - Manual - - A "manual" expense has had all its details specified by the workspace member. It was not imported from any system, or scanned from a receipt. - - - ), - }, - ':scan': { - content: ({styles}: {styles: ThemeStyles}) => ( - <> - Scanned - A "scanned" expense was created by extracting the relevant details using the Concierge AI. - - ), - }, - ':expensifyCard': { - content: ({styles}: {styles: ThemeStyles}) => ( - <> - Expensify Card - An "Expensify Card" expense corresponds to a "posted" (meaning, finalized by the bank) purchase. - - Expensify Card expenses cannot be reimbursed as they are centrally paid by the bank account linked to the workspace. - - - ), - }, - ':pendingExpensifyCard': { - content: ({styles}: {styles: ThemeStyles}) => ( - <> - Expensify Card (pending) - - A "pending" Expensify Card expense represents a purchase that was recently made on the card, but has not yet "posted" – meaning, it has not been - formally recognized as a final, complete transaction. - - Any changes made to this expense will be preserved when the expense posts, typically 2-7 days later. - - Pending transactions cannot be approved, as the final expense amount will not be confirmed until it posts. - - - ), - }, - }, }, }, - }, - home: { content: ({styles}: {styles: ThemeStyles}) => ( - <> - Chat - - Chat is the foundation of New Expensify. Every expense, expense report, workspace, or member has an associated "chat", which you can use to record additional details, + + Chat + + Chat is the foundation of New Expensify. Every expense, expense report, workspace, or member has an associated “chat”, which you can use to record additional details, or collaborate with others. Every chat has the following components: - Header - + This shows who you are chatting with (or what you are chatting about). You can press the header for more details on the chat, or additional actions to take upon it. - Comments - The core of the chat are its comments, which come in many forms: + The core of the chat are its comments, which come in many forms: - Text - Rich text messages stored securely and delivered via web, app, email, or SMS. + Text – Rich text messages stored securely and delivered via web, app, email, or SMS. , - Images & Documents - Insert photos, screenshots, movies, PDFs, or more, using copy/paste, drag/drop, or the attach + Images & Documents – Insert photos, screenshots, movies, PDFs, or more, using copy/paste, drag/drop, or the attach button. , - Expenses - Share an expense in the chat, either to simply track and document it, or to submit for reimbursement. + Expenses – Share an expense in the chat, either to simply track and document it, or to submit for reimbursement. , - Tasks - Record a task, and optionally assign it to someone (or yourself!). + Tasks – Record a task, and optionally assign it to someone (or yourself!). , ]} /> - Actions - Hover (or long press) on a comment to see additional options, including: + Hover (or long press) on a comment to see additional options, including: - React - Throw a ♥️😂🔥 like on anything! + React – Throw a ♥️😂🔥 like on anything! , - Reply in thread - Go deeper by creating a new chat on any comment. + Reply in thread – Go deeper by creating a new chat on any comment. , - Mark unread - Flag it for reading later, at your convenience. + Mark unread – Flag it for reading later, at your convenience. , ]} /> - Composer - Use the composer at the bottom to write new messages: + Use the composer at the bottom to write new messages: - Markdown - Format text using bold, italics, - and more. + Markdown – Format text using bold, italics, + and{' '} + + more + + . , - Mention - Invite or tag anyone in the world to any chat by putting an @ in front of their email address or phone number + Mention – Invite or tag anyone in the world to any chat by putting an @ in front of their email address or phone number (e.g., @awong@marslink.web, or @415-867-5309). , ]} /> - - Inbox - The Inbox is a prioritized "to do" list, highlighting exactly what you need to do next. It consists of: - + Inbox + The Inbox is a prioritized “to do” list, highlighting exactly what you need to do next. It consists of: Priorities - At the top of the Inbox are the most important tasks you should do first, which include: + At the top of the Inbox are the most important tasks you should do first, which include: Anything you have pinned, ]} /> - Chats - Beneath the priorities are a list of chats (with unread chats highlighted in bold), in one of two view modes: + Beneath the priorities are a list of chats (with unread chats highlighted in bold), in one of two view modes: - Most Recent - Lists every chat, ordered by whichever was most recently active. + Most Recent – Lists every chat, ordered by whichever was most recently active. , - Focus - Only lists chats with unread messages, sorted alphabetically. + Focus – Only lists chats with unread messages, sorted alphabetically. , ]} /> - + + ), + }, + settings: { + children: { + workspaces: { + children: { + ':policyID': { + children: { + accounting: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Accounting Integrations + Connect your workspace to accounting software to sync expenses and streamline financial management. + Supported Integrations + + QuickBooks Online + + Real-time expense sync, + Category and vendor mapping, + Tax rate synchronization, + ]} + /> + + QuickBooks Desktop + + File-based import/export, + Chart of accounts import, + Custom field mapping, + ]} + /> + + Xero + + Automatic report sync, + Tracking category import, + Tax rate management, + ]} + /> + + NetSuite + + Advanced multi-entity support, + Custom dimension mapping, + Automated bill payments, + ]} + /> + + Sage Intacct + + Department/class tracking, + Multi-currency support, + Advanced approval workflows, + ]} + /> + Getting Started + + What Gets Synced + + From your accounting system: + + Chart of accounts (as categories), + Classes, departments, locations (as tags), + Tax rates and customers, + Vendors and bill payment accounts, + ]} + /> + + To your accounting system: + + Approved expense reports, + Company card transactions, + Vendor bills and journal entries, + Payment records and reconciliation data, + ]} + /> + Related Links + + + Connect to QuickBooks Online + + , + + + Connect to Xero + + , + + + Connect to NetSuite + + , + ]} + /> + + ), + }, + members: { + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace Members + Manage team access, roles, and permissions for your workspace. + Member Roles + + Admin + + Full workspace control and settings access, + Add/remove members and change roles, + Set up integrations and payment methods, + Approve and pay expenses, + ]} + /> + + Member + + Submit expenses and create reports, + Participate in workspace chats, + View assigned expenses and reports, + ]} + /> + + Auditor + + View all workspace reports (read-only), + Add comments but cannot modify expenses, + No approval or payment permissions, + ]} + /> + Adding Members + + + Alternative: Share workspace URL or QR code from{' '} + Settings > Profile > Share + + Managing Members + + Change Role: + + + + Remove Member: + + + + Bulk Actions: + + Select multiple members with checkboxes, + Use dropdown to remove or modify multiple members, + ]} + /> + Transfer Ownership + + Related Links + + + Managing Workspace Members + + , + + + Add Approvals + + , + ]} + /> + + ), + }, + }, + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspace + This is where you configure all the settings of the many features associated with your workspace. + Default features + Here are the features that are enabled by default: + + Overview - Configure how it appears to others. + , + + Members - Add/remove members and admins. + , + + Workflows - Configure submission, approval, and reimbursement. + , + + Categories - Group expenses into a chart of accounts. + , + + Expensify Card - Issue native Expensify Cards to employees. + , + + Accounting - Sync with external accounting systems. + , + ]} + /> + Optional features + These can be enabled via More Features: + + Distance rates - Configure mileage reimbursement. + , + + Company card - Connect and manage third-party corporate card feeds. + , + + Per diem - Configure daily rates. + , + + Rules - Customize expense violations and set policy. + , + + Invoices - Collect revenue from customers. + , + + Tags - Group expenses by project or client. + , + + Taxes - Track VAT and other taxes. + , + + Report fields - Capture extra expense report information. + , + ]} + /> + + ), + }, + }, + content: ({styles}: {styles: ThemeStyles}) => ( + + Workspaces + Workspaces allow for a wide range of features, including: + + Categorize and submit expenses + , + + Approve and reimburse expenses + , + + Sync with accounting packages + , + + Connect to company card feeds + , + + Manage Expensify Cards + , + + Chat with colleagues, partners, and clients + , + … and lots more!, + ]} + /> + Workspaces come in two variations: + + Collect workspaces start at $5/member, and include all the basics for running a small business. + , + + Control workspaces start at $9/member, and provide advanced capabilities, more powerful accounting sync, and more + sophisticated approval flows. + , + ]} + /> + + In general you would create one Workspace for each company you manage. You can create and join as many workspaces as you like. + + + ), + }, + }, + content: ({styles}: {styles: ThemeStyles}) => ( + + Settings + Here is where you configure Expensify exactly to your specifications: + + Profile - Configure how you appear to others. + , + + Wallet - See and manage your credit cards and bank accounts. + , + + Preferences - Adjust how the app works for you. + , + + Security - Lock down how you and others access your account. + , + + Workspaces - Organize expenses for yourself and share with others. + , + + Subscriptions - Manage payment details and history. + , + + Domains - Advanced security and corporate card configuration. + , + + Switch to Expensify Classic - Battle tested and reliable. + , + + Save the World - Let Expensify.org help your favorite teacher! + , + ]} + /> + ), }, search: { content: ({styles}: {styles: ThemeStyles}) => ( - <> - Reports - Virtually all data can be analyzed and reported upon in the Reports page. The major elements of this page include: - + + Reports + Virtually all data can be analyzed and reported upon in the Reports page. The major elements of this page include: Data type - Start first by choosing the type of data you want to analyze, which can be: + Start first by choosing the type of data you want to analyze, which can be: , ]} /> - Search - A quick method of narrowing the results by keyword or more. - + A quick method of narrowing the results by keyword or more. State filter - Simple methods to filter the results by "state", including: + Simple methods to filter the results by “state”, including: All, + + All + , <> Expenses/Expense/Invoices reports: + Draft - Only you can see that hasn't been shared yet., + Draft - Only you can see that hasn’t been shared yet., Outstanding - Submitted to someone and awaiting action., Approved - Approved, but awaiting payment., Done - Fully processed, no further action needed., @@ -443,6 +1001,7 @@ const helpContentMap: HelpContent = { , <> Chats: + , <> Trips: + Current - Happening or in the future., Past - Already happened.]} @@ -463,177 +1023,62 @@ const helpContentMap: HelpContent = { , ]} /> - Results - The core of the Reports page are the search results themselves. + The core of the Reports page are the search results themselves. Select a row to see additional options., Tap on a row to see more detail.]} /> - + ), }, - settings: { - content: ({styles}: {styles: ThemeStyles}) => ( - <> - Settings - Here is where you configure Expensify exactly to your specifications: - - Profile - Configure how you appear to others. - , - - Wallet - See and manage your credit cards and bank accounts. - , - - Preferences - Adjust how the app works for you. - , - - Security - Lock down how you and others access your account. - , - - Workspaces - Organize expenses for yourself and share with others. - , - - Subscriptions - Manage payment details and history. - , - - Domains - Advanced security and corporate card configuration. - , - - Switch to Expensify Classic - Battle tested and reliable. - , - - Save the World - Let Expensify.org help your favorite teacher! - , - ]} - /> - - ), + new: { children: { - workspaces: { + task: { content: ({styles}: {styles: ThemeStyles}) => ( - <> - Workspaces - Workspaces allow for a wide range of features, including: + + Tasks + + Keep conversations organized by letting you create actionable to-dos directly within a chat. You can assign them to yourself or others in both 1:1 and group + chats. + - Categorize and submit expenses - , - - Approve and reimburse expenses - , - - Sync with accounting packages - , - - Connect to company card feeds - , - - Manage Expensify Cards + + Create a task: In any chat, click the + button next to the message field and select Assign a task. Add a + title (required) and an optional description, and choose an assignee from chat participants. You can also leave it unassigned to track it + yourself. + , - Chat with colleagues, partners, and clients + + Use tasks to stay on top of action items: Tasks are great for follow-ups like “Submit expense report,” “Share + slide deck,” or “Update mileage rate.” They’re perfect for 1:1 check-ins, project updates, or organizing next steps after a team discussion. + , - … and lots more!, - ]} - /> - - Workspaces come in two variations: - - Collect workspaces start at $5/member, and include all the basics for running a small business. + + Edit and manage tasks: Task creators and assignees can comment, edit the title or description, reassign the + task, or mark it as complete. Just click the task to update any details. + , - Control workspaces start at $9/member, and provide advanced capabilities, more powerful accounting sync, and more - sophisticated approval flows. + + Tasks stay visible: Each task is shared in the chat where it’s created. When completed, it will be clearly + marked in the chat and can be reopened if needed. + , ]} /> - - - In general you would create one Workspace for each company you manage. You can create and join as many workspaces as you like. - - + ), - children: { - ':policyID': { - content: ({styles}: {styles: ThemeStyles}) => ( - <> - Workspace - This is where you configure all the settings of the many features associated with your workspace. - - Default features - Here are the features that are enabled by default: - - Overview - Configure how it appears to others. - , - - Members - Add/remove members and admins. - , - - Workflows - Configure submission, approval, and reimbursement. - , - - Categories - Group expenses into a chart of accounts. - , - - Expensify Card - Issue native Expensify Cards to employees. - , - - Accounting - Sync with external accounting systems. - , - ]} - /> - - Optional features - These can be enabled via More Features: - - Distance rates - Configure mileage reimbursement. - , - - Company card - Connect and manage third-party corporate card feeds. - , - - Per diem - Configure daily rates. - , - - Rules - Customize expense violations and set policy. - , - - Invoices - Collect revenue from customers. - , - - Tags - Group expenses by project or client. - , - - Taxes - Track VAT and other taxes. - , - - Report fields - Capture extra expense report information. - , - ]} - /> - - ), - }, - }, }, }, }, }, + content: () => null, }; export default helpContentMap; diff --git a/src/components/SidePanel/getHelpContent.tsx b/src/components/SidePanel/getHelpContent.tsx index 7c5e6e9788b3..deeb9af1d957 100644 --- a/src/components/SidePanel/getHelpContent.tsx +++ b/src/components/SidePanel/getHelpContent.tsx @@ -17,7 +17,9 @@ function getHelpContent(styles: ThemeStyles, route: string, isProduction: boolea for (const part of routeParts) { if (activeHelpContent?.children?.[part]) { activeHelpContent = activeHelpContent.children[part]; - helpContentComponents.push(activeHelpContent.content); + if (activeHelpContent.content) { + helpContentComponents.push(activeHelpContent.content); + } } else { if (helpContentComponents.length === 0) { // eslint-disable-next-line react/no-unescaped-entities