Skip to content

Commit

Permalink
Update import grouping (#616)
Browse files Browse the repository at this point in the history
  • Loading branch information
harryzcy authored Nov 12, 2023
1 parent 21c6cdf commit 65fc302
Show file tree
Hide file tree
Showing 21 changed files with 100 additions and 65 deletions.
11 changes: 10 additions & 1 deletion web/.prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,16 @@
"trailingComma": "none",
"singleQuote": true,
"printWidth": 80,
"importOrder": ["^[./]"],
"importOrder": [
"^components",
"^context",
"^hooks",
"^lib",
"^pages",
"^services",
"^utils",
"^[./]"
],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"plugins": [
Expand Down
3 changes: 2 additions & 1 deletion web/jest.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export default {
preset: 'ts-jest',
testEnvironment: 'jsdom'
testEnvironment: 'jsdom',
moduleDirectories: ['node_modules', 'src']
}
5 changes: 3 additions & 2 deletions web/src/components/Sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ import {
import { ReactElement, useEffect, useState } from 'react'
import { NavLink } from 'react-router-dom'

import { getInfo } from '../services/info'
import { browserVersion } from '../utils/info'
import { getInfo } from 'services/info'

import { browserVersion } from 'utils/info'

export default function Sidebar() {
const navItems: [string, string, ReactElement][] = [
Expand Down
2 changes: 1 addition & 1 deletion web/src/components/emails/DraftEmailsTabs.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useContext } from 'react'

import { DraftEmailsContext } from '../../contexts/DraftEmailContext'
import { DraftEmailsContext } from 'contexts/DraftEmailContext'

export default function DraftEmailsTabs() {
const draftEmailsContext = useContext(DraftEmailsContext)
Expand Down
9 changes: 5 additions & 4 deletions web/src/components/emails/EmailDraft.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@
*/
import { MinusIcon, XMarkIcon } from '@heroicons/react/20/solid'

import { DraftEmail } from '../../contexts/DraftEmailContext'
import EmailAddressInput from '../inputs/EmailAddressInput'
import RichTextEditor from '../inputs/RichTextEditor'
import TextInput from '../inputs/TextInput'
import EmailAddressInput from 'components/inputs/EmailAddressInput'
import RichTextEditor from 'components/inputs/RichTextEditor'
import TextInput from 'components/inputs/TextInput'

import { DraftEmail } from 'contexts/DraftEmailContext'

interface EmailDraftProps {
email: DraftEmail
Expand Down
9 changes: 5 additions & 4 deletions web/src/components/emails/EmailMenuBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ import {
} from '@heroicons/react/24/outline'
import { useContext, useEffect, useState } from 'react'

import { ConfigContext, Plugin } from '../../contexts/ConfigContext'
import { DraftEmailsContext } from '../../contexts/DraftEmailContext'
import { createEmail, generateLocalDraftID } from '../../services/emails'
import * as plugins from '../../services/plugins'
import { ConfigContext, Plugin } from 'contexts/ConfigContext'
import { DraftEmailsContext } from 'contexts/DraftEmailContext'

import { createEmail, generateLocalDraftID } from 'services/emails'
import * as plugins from 'services/plugins'

interface EmailMenuBarProps {
emailIDs: string[]
Expand Down
10 changes: 6 additions & 4 deletions web/src/components/emails/EmailTableRow.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { useContext } from 'react'
import { useNavigate } from 'react-router-dom'

import { DraftEmailsContext } from '../../contexts/DraftEmailContext'
import { EmailInfo, getEmail } from '../../services/emails'
import { getNameFromEmails } from '../../utils/emails'
import { formatDate } from '../../utils/time'
import { DraftEmailsContext } from 'contexts/DraftEmailContext'

import { EmailInfo, getEmail } from 'services/emails'

import { getNameFromEmails } from 'utils/emails'
import { formatDate } from 'utils/time'

interface EmailTableRowProps {
email: EmailInfo
Expand Down
6 changes: 4 additions & 2 deletions web/src/components/emails/EmailTableView.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { useEffect, useRef } from 'react'

import useIsInViewport from '../../hooks/useIsInViewport'
import { EmailInfo } from '../../services/emails'
import useIsInViewport from 'hooks/useIsInViewport'

import { EmailInfo } from 'services/emails'

import EmailTableRow from './EmailTableRow'

interface EmailTableViewProps {
Expand Down
12 changes: 6 additions & 6 deletions web/src/components/emails/FullScreenContent.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { useContext, useEffect, useState } from 'react'

import {
DraftEmail,
DraftEmailsContext
} from '../../contexts/DraftEmailContext'
import useThrottled from '../../hooks/useThrottled'
import { deleteEmail, saveEmail } from '../../services/emails'
import { DraftEmail, DraftEmailsContext } from 'contexts/DraftEmailContext'

import useThrottled from 'hooks/useThrottled'

import { deleteEmail, saveEmail } from 'services/emails'

import { EmailDraft } from './EmailDraft'

interface FullScreenContentProps {
Expand Down
2 changes: 1 addition & 1 deletion web/src/components/inputs/EmailQuoteNode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
} from 'lexical'
import { ReactNode } from 'react'

import { parseEmailHTML } from '../../utils/emails'
import { parseEmailHTML } from 'utils/emails'

export class EmailQuoteNode extends DecoratorNode<ReactNode> {
__html: string
Expand Down
12 changes: 6 additions & 6 deletions web/src/components/inputs/plugins/ToolbarPlugin.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,12 @@ import {
} from 'react'
import { createPortal } from 'react-dom'

import Bars3BottomCenterIcon from '../icons/Bars3BottomCenterIcon'
import BoldIcon from '../icons/BoldIcon'
import ItalicIcon from '../icons/ItalicIcon'
import ListNumberIcon from '../icons/ListNumberIcon'
import StrikeThroughIcon from '../icons/StrikeThrough'
import UnderlineIcon from '../icons/Underline'
import Bars3BottomCenterIcon from 'components/inputs/icons/Bars3BottomCenterIcon'
import BoldIcon from 'components/inputs/icons/BoldIcon'
import ItalicIcon from 'components/inputs/icons/ItalicIcon'
import ListNumberIcon from 'components/inputs/icons/ListNumberIcon'
import StrikeThroughIcon from 'components/inputs/icons/StrikeThrough'
import UnderlineIcon from 'components/inputs/icons/Underline'

const LowPriority = 1

Expand Down
3 changes: 2 additions & 1 deletion web/src/components/ui/toast.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import * as ToastPrimitives from '@radix-ui/react-toast'
import { type VariantProps, cva } from 'class-variance-authority'
import { cn } from 'lib/utils'
import { X } from 'lucide-react'
import * as React from 'react'

import { cn } from 'lib/utils'

const ToastProvider = ToastPrimitives.Provider

const ToastViewport = React.forwardRef<
Expand Down
3 changes: 2 additions & 1 deletion web/src/components/ui/use-toast.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
// Inspired by react-hot-toast library
import type { ToastActionElement, ToastProps } from 'components/ui/toast'
import * as React from 'react'

import type { ToastActionElement, ToastProps } from 'components/ui/toast'

const TOAST_LIMIT = 1
const TOAST_REMOVE_DELAY = 1000000

Expand Down
1 change: 1 addition & 0 deletions web/src/contexts/ConfigContext.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Dispatch, createContext } from 'react'

import { Config } from 'services/config'

export interface Plugin {
Expand Down
3 changes: 2 additions & 1 deletion web/src/contexts/DraftEmailContext.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import { renderHook } from '@testing-library/react'
import { useContext, useReducer } from 'react'
import { act } from 'react-dom/test-utils'

import { Email } from '../services/emails'
import { Email } from 'services/emails'

import {
DraftEmail,
DraftEmailsContext,
Expand Down
5 changes: 3 additions & 2 deletions web/src/contexts/DraftEmailContext.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { Dispatch, createContext } from 'react'

import { Email } from '../services/emails'
import { formatDateFull } from '../utils/time'
import { Email } from 'services/emails'

import { formatDateFull } from 'utils/time'

export interface DraftEmail {
messageID: string
Expand Down
16 changes: 10 additions & 6 deletions web/src/pages/EmailList.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
import { toast } from 'components/ui/use-toast'
import { useEffect, useRef, useState } from 'react'

import EmailMenuBar from '../components/emails/EmailMenuBar'
import EmailTableView from '../components/emails/EmailTableView'
import { useOutsideClick } from '../hooks/useOutsideClick'
import EmailMenuBar from 'components/emails/EmailMenuBar'
import EmailTableView from 'components/emails/EmailTableView'
import { toast } from 'components/ui/use-toast'

import { useOutsideClick } from 'hooks/useOutsideClick'

import {
deleteEmail,
readEmail,
trashEmail,
unreadEmail
} from '../services/emails'
import { getCurrentYearMonth } from '../utils/time'
} from 'services/emails'

import { getCurrentYearMonth } from 'utils/time'

import { useInboxContext } from './EmailRoot'

export default function EmailList() {
Expand Down
17 changes: 10 additions & 7 deletions web/src/pages/EmailRoot.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,16 @@
import { useContext, useEffect, useState } from 'react'
import { Outlet, useOutletContext } from 'react-router-dom'

import DraftEmailsTabs from '../components/emails/DraftEmailsTabs'
import FullScreenContent from '../components/emails/FullScreenContent'
import { ConfigContext } from '../contexts/ConfigContext'
import { DraftEmailsContext } from '../contexts/DraftEmailContext'
import { getConfig } from '../services/config'
import { EmailInfo, ListEmailsResponse, listEmails } from '../services/emails'
import { getCurrentYearMonth } from '../utils/time'
import DraftEmailsTabs from 'components/emails/DraftEmailsTabs'
import FullScreenContent from 'components/emails/FullScreenContent'

import { ConfigContext } from 'contexts/ConfigContext'
import { DraftEmailsContext } from 'contexts/DraftEmailContext'

import { getConfig } from 'services/config'
import { EmailInfo, ListEmailsResponse, listEmails } from 'services/emails'

import { getCurrentYearMonth } from 'utils/time'

type InboxContext = {
count: number
Expand Down
27 changes: 16 additions & 11 deletions web/src/pages/EmailView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,16 @@ import {
import React, { useContext, useEffect, useRef, useState } from 'react'
import { Await, useLoaderData, useNavigate } from 'react-router-dom'

import { EmailDraft } from '../components/emails/EmailDraft'
import EmailMenuBar from '../components/emails/EmailMenuBar'
import { ConfigContext } from '../contexts/ConfigContext'
import { DraftEmail, DraftEmailsContext } from '../contexts/DraftEmailContext'
import { useOutsideClick } from '../hooks/useOutsideClick'
import { EmailDraft } from 'components/emails/EmailDraft'
import EmailMenuBar from 'components/emails/EmailMenuBar'

import { ConfigContext } from 'contexts/ConfigContext'
import { DraftEmail, DraftEmailsContext } from 'contexts/DraftEmailContext'

import { useOutsideClick } from 'hooks/useOutsideClick'

import { useInboxContext } from 'pages/EmailRoot'

import {
CreateEmailProps,
Email,
Expand All @@ -21,12 +26,12 @@ import {
saveEmail,
trashEmail,
unreadEmail
} from '../services/emails'
import { Thread } from '../services/threads'
import { getNameFromEmails } from '../utils/emails'
import { parseEmailContent } from '../utils/emails'
import { formatDate } from '../utils/time'
import { useInboxContext } from './EmailRoot'
} from 'services/emails'
import { Thread } from 'services/threads'

import { getNameFromEmails } from 'utils/emails'
import { parseEmailContent } from 'utils/emails'
import { formatDate } from 'utils/time'

export default function EmailView() {
const data = useLoaderData() as
Expand Down
7 changes: 4 additions & 3 deletions web/src/pages/Root.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@ import { Toaster } from '@ui/toaster'
import { useReducer } from 'react'
import { Outlet } from 'react-router-dom'

import Sidebar from '../components/Sidebar'
import Sidebar from 'components/Sidebar'

import {
ConfigContext,
configReducer,
initialConfigState
} from '../contexts/ConfigContext'
} from 'contexts/ConfigContext'
import {
DraftEmailsContext,
draftEmailReducer,
initialState
} from '../contexts/DraftEmailContext'
} from 'contexts/DraftEmailContext'

export default function Root() {
const [configState, configDispatch] = useReducer(
Expand Down
2 changes: 1 addition & 1 deletion web/src/utils/emails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import parse, {
domToReact
} from 'html-react-parser'

import { Email } from '../services/emails'
import { Email } from 'services/emails'

export function getNameFromEmails(emails: string[] | null): string {
if (!emails || emails.length === 0) {
Expand Down

0 comments on commit 65fc302

Please sign in to comment.