diff --git a/biome.json b/biome.json
index 4663b8ca1..6c5a29bc3 100644
--- a/biome.json
+++ b/biome.json
@@ -17,10 +17,13 @@
":BLANK_LINE:",
":PACKAGE:",
":BLANK_LINE:",
+ "**/shared/**",
+ ":BLANK_LINE:",
"**"
]
}
- }
+ },
+ "useSortedAttributes": "on"
}
}
},
@@ -41,7 +44,12 @@
"useExhaustiveDependencies": {
"level": "warn",
"options": {
- "hooks": [{ "name": "useNavigate", "stableResult": true }]
+ "hooks": [
+ {
+ "name": "useNavigate",
+ "stableResult": true
+ }
+ ]
}
},
"useUniqueElementIds": "warn"
diff --git a/src/main/index.ts b/src/main/index.ts
index f8f73d5a0..265b5f060 100644
--- a/src/main/index.ts
+++ b/src/main/index.ts
@@ -6,6 +6,7 @@ import { APPLICATION } from '../shared/constants';
import { namespacedEvent } from '../shared/events';
import { logInfo, logWarn } from '../shared/logger';
import { isLinux, isWindows } from '../shared/platform';
+
import { onFirstRunMaybe } from './first-run';
import { TrayIcons } from './icons';
import MenuBuilder from './menu';
diff --git a/src/main/menu.ts b/src/main/menu.ts
index 7465977e9..e4be9c4c6 100644
--- a/src/main/menu.ts
+++ b/src/main/menu.ts
@@ -4,6 +4,7 @@ import type { Menubar } from 'menubar';
import { APPLICATION } from '../shared/constants';
import { isMacOS, isWindows } from '../shared/platform';
+
import { openLogsDirectory, resetApp, takeScreenshot } from './utils';
export default class MenuBuilder {
diff --git a/src/main/updater.ts b/src/main/updater.ts
index c1f5202a8..60dac989a 100644
--- a/src/main/updater.ts
+++ b/src/main/updater.ts
@@ -5,6 +5,7 @@ import type { Menubar } from 'menubar';
import { APPLICATION } from '../shared/constants';
import { logError, logInfo } from '../shared/logger';
+
import type MenuBuilder from './menu';
/**
diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx
index 9f7f3694c..adf1f35b4 100644
--- a/src/renderer/App.tsx
+++ b/src/renderer/App.tsx
@@ -28,7 +28,7 @@ function RequireAuth({ children }) {
return isLoggedIn ? (
children
) : (
-
+
);
}
@@ -41,45 +41,45 @@ export const App = () => {
}
+ path="/"
/>
}
+ path="/filters"
/>
}
+ path="/settings"
/>
}
+ path="/accounts"
/>
- } />
+ } path="/login" />
}
+ path="/login-personal-access-token"
/>
}
+ path="/login-oauth-app"
/>
diff --git a/src/renderer/components/AllRead.tsx b/src/renderer/components/AllRead.tsx
index 4109d4d33..5dca686a7 100644
--- a/src/renderer/components/AllRead.tsx
+++ b/src/renderer/components/AllRead.tsx
@@ -25,6 +25,6 @@ export const AllRead: FC = ({ fullHeight = true }: IAllRead) => {
const heading = `No new ${hasFilters ? 'filtered ' : ''} notifications`;
return (
-
+
);
};
diff --git a/src/renderer/components/Oops.tsx b/src/renderer/components/Oops.tsx
index c6352b3da..38beccb1c 100644
--- a/src/renderer/components/Oops.tsx
+++ b/src/renderer/components/Oops.tsx
@@ -20,9 +20,9 @@ export const Oops: FC = ({ error, fullHeight = true }: IOops) => {
return (
);
};
diff --git a/src/renderer/components/Sidebar.tsx b/src/renderer/components/Sidebar.tsx
index 49c511401..c01c15c23 100644
--- a/src/renderer/components/Sidebar.tsx
+++ b/src/renderer/components/Sidebar.tsx
@@ -13,6 +13,7 @@ import {
import { IconButton, Stack } from '@primer/react';
import { APPLICATION } from '../../shared/constants';
+
import { AppContext } from '../context/App';
import { quitApp } from '../utils/comms';
import { Constants } from '../utils/constants';
@@ -72,129 +73,129 @@ export const Sidebar: FC = () => {
return (
navigate('/', { replace: true })}
size="small"
- variant="invisible"
tooltipDirection="e"
- onClick={() => navigate('/', { replace: true })}
- data-testid="sidebar-home"
+ unsafeDisableTooltip={false}
+ variant="invisible"
/>
0 ? 'primary' : 'invisible'}
- tooltipDirection="e"
+ icon={BellIcon}
onClick={() => openGitHubNotifications(primaryAccountHostname)}
- data-testid="sidebar-notifications"
+ size="small"
sx={sidebarButtonStyle}
+ tooltipDirection="e"
+ unsafeDisableTooltip={false}
+ variant={notificationsCount > 0 ? 'primary' : 'invisible'}
/>
{isLoggedIn && (
toggleFilters()}
- data-testid="sidebar-filter-notifications"
+ size="small"
sx={sidebarButtonStyle}
+ tooltipDirection="e"
+ unsafeDisableTooltip={false}
+ variant={hasAnyFiltersSet(settings) ? 'primary' : 'invisible'}
/>
)}
openGitHubIssues(primaryAccountHostname)}
data-testid="sidebar-my-issues"
+ icon={IssueOpenedIcon}
+ onClick={() => openGitHubIssues(primaryAccountHostname)}
+ size="small"
sx={sidebarButtonStyle}
+ tooltipDirection="e"
+ unsafeDisableTooltip={false}
+ variant="invisible"
/>
openGitHubPulls(primaryAccountHostname)}
data-testid="sidebar-my-pull-requests"
+ icon={GitPullRequestIcon}
+ onClick={() => openGitHubPulls(primaryAccountHostname)}
+ size="small"
sx={sidebarButtonStyle}
+ tooltipDirection="e"
+ unsafeDisableTooltip={false}
+ variant="invisible"
/>
{isLoggedIn && (
<>
refreshNotifications()}
- data-testid="sidebar-refresh"
+ size="small"
sx={sidebarButtonStyle}
+ tooltipDirection="e"
+ unsafeDisableTooltip={false}
+ variant="invisible"
/>
toggleSettings()}
data-testid="sidebar-settings"
+ icon={GearIcon}
+ onClick={() => toggleSettings()}
+ size="small"
sx={sidebarButtonStyle}
+ tooltipDirection="e"
+ unsafeDisableTooltip={false}
+ variant="invisible"
/>
>
)}
{!isLoggedIn && (
quitApp()}
data-testid="sidebar-quit"
+ icon={XCircleIcon}
+ onClick={() => quitApp()}
+ size="small"
sx={sidebarButtonStyle}
+ tooltipDirection="e"
+ unsafeDisableTooltip={false}
+ variant="invisible"
/>
)}
diff --git a/src/renderer/components/avatars/AvatarWithFallback.tsx b/src/renderer/components/avatars/AvatarWithFallback.tsx
index fc6607372..2f1116af1 100644
--- a/src/renderer/components/avatars/AvatarWithFallback.tsx
+++ b/src/renderer/components/avatars/AvatarWithFallback.tsx
@@ -31,24 +31,24 @@ export const AvatarWithFallback: React.FC = ({
// TODO explore using AnchoredOverlay component (https://primer.style/components/anchored-overlay/react/alpha) to render Avatar Card on hover
return (
{!src || isBroken ? (
) : (
setIsBroken(true)}
size={size}
square={isNonHuman}
- onError={() => setIsBroken(true)}
+ src={src}
/>
)}
{name && (
-
+
{name}
)}
diff --git a/src/renderer/components/fields/Checkbox.test.tsx b/src/renderer/components/fields/Checkbox.test.tsx
index 623a59d91..7d004caf7 100644
--- a/src/renderer/components/fields/Checkbox.test.tsx
+++ b/src/renderer/components/fields/Checkbox.test.tsx
@@ -33,12 +33,12 @@ describe('renderer/components/fields/Checkbox.tsx', () => {
});
it('should render - positive counter unselected', () => {
- const tree = render();
+ const tree = render();
expect(tree).toMatchSnapshot();
});
it('should render - positive counter selected', () => {
- const tree = render();
+ const tree = render();
expect(tree).toMatchSnapshot();
});
diff --git a/src/renderer/components/fields/Checkbox.tsx b/src/renderer/components/fields/Checkbox.tsx
index 4a7e77c55..f78e54c32 100644
--- a/src/renderer/components/fields/Checkbox.tsx
+++ b/src/renderer/components/fields/Checkbox.tsx
@@ -26,27 +26,27 @@ export const Checkbox: FC = ({
return (
visible && (
diff --git a/src/renderer/components/fields/FieldLabel.tsx b/src/renderer/components/fields/FieldLabel.tsx
index 633d1225d..471dc0b7f 100644
--- a/src/renderer/components/fields/FieldLabel.tsx
+++ b/src/renderer/components/fields/FieldLabel.tsx
@@ -7,7 +7,7 @@ export interface IFieldLabel {
export const FieldLabel: FC = (props: IFieldLabel) => {
return (
-