Skip to content
This repository was archived by the owner on May 4, 2023. It is now read-only.

Commit 99c930f

Browse files
Merge pull request #6 from codiga/daniel/1837
feat: view snippet/cookbooks, bug fixes and general improvements
2 parents e2829e8 + 708d63d commit 99c930f

File tree

86 files changed

+1760
-927
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+1760
-927
lines changed

.eslintrc.js

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,30 @@ module.exports = {
44
// A temporary hack related to IDE not resolving correct package.json
55
'import/no-extraneous-dependencies': 'off',
66
'import/no-unresolved': 'error',
7+
'import/no-cycle': 'off',
8+
'import/prefer-default-export': 'off',
79
// Since React 17 and typescript 4.1 you can safely disable the rule
810
'react/react-in-jsx-scope': 'off',
911
'react/jsx-props-no-spreading': 'off',
10-
'import/no-cycle': 'off',
11-
'@typescript-eslint/no-non-null-assertion': 'off',
1212
'react/require-default-props': [2, { functions: 'defaultArguments' }],
13-
'import/prefer-default-export': 'off',
13+
'@typescript-eslint/no-non-null-assertion': 'off',
1414
'@typescript-eslint/ban-ts-comment': 'off',
15+
'@typescript-eslint/no-unused-vars': [
16+
'error',
17+
{
18+
argsIgnorePattern: '^_',
19+
varsIgnorePattern: '^_',
20+
caughtErrorsIgnorePattern: '^_',
21+
},
22+
],
23+
'@typescript-eslint/naming-convention': [
24+
'error',
25+
{
26+
format: null,
27+
selector: 'variable',
28+
leadingUnderscore: 'allow',
29+
},
30+
],
1531
},
1632
parserOptions: {
1733
ecmaVersion: 2020,

assets/icon.icns

378 KB
Binary file not shown.

assets/icon.ico

28.7 KB
Binary file not shown.

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
"@apollo/client": "^3.6.9",
101101
"@chakra-ui/icons": "^1.1.7",
102102
"@chakra-ui/react": "^1.8.8",
103-
"@codiga/codiga-components": "^1.0.5",
103+
"@codiga/components": "^1.1.0",
104104
"@electron/remote": "^2.0.8",
105105
"@emotion/react": "^11.10.0",
106106
"@emotion/styled": "^11.10.0",

src/main/main.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ if (isDebug) {
4646
const installExtensions = async () => {
4747
const installer = require('electron-devtools-installer');
4848
const forceDownload = !!process.env.UPGRADE_EXTENSIONS;
49-
const extensions = ['REACT_DEVELOPER_TOOLS'];
49+
const extensions = ['REACT_DEVELOPER_TOOLS', 'APOLLO_DEVELOPER_TOOLS'];
5050

5151
return installer
5252
.default(
@@ -140,7 +140,11 @@ app
140140
mainWindow?.minimize();
141141
});
142142
ipcMain.on('maximizeApp', () => {
143-
mainWindow?.maximize();
143+
if (mainWindow?.isMaximized()) {
144+
mainWindow?.unmaximize();
145+
} else {
146+
mainWindow?.maximize();
147+
}
144148
});
145149
ipcMain.on('closeApp', () => {
146150
mainWindow?.close();

src/main/preload.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export type Channels =
77
| 'closeApp';
88

99
contextBridge.exposeInMainWorld('electron', {
10+
isMac: process.platform === 'darwin',
1011
ipcRenderer: {
1112
sendMessage(channel: Channels, args: unknown[]) {
1213
ipcRenderer.send(channel, args);

src/renderer/App.tsx

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ApolloProvider } from '@apollo/client';
22
import { ChakraProvider } from '@chakra-ui/react';
3-
import { theme } from '@codiga/codiga-components';
3+
import { theme } from '@codiga/components';
44
import { MemoryRouter as Router, Routes, Route } from 'react-router-dom';
55

66
// PAGES
@@ -24,37 +24,50 @@ import Filters from './components/Filters/Filters';
2424
import { UserProvider } from './components/UserContext';
2525
import { ThemeProvider } from './components/ThemeContext';
2626
import { FiltersProvider } from './components/FiltersContext';
27+
import ViewSnippet from './pages/ViewSnippet';
28+
import ViewCookbookSnippets from './pages/ViewCookbookSnippets';
2729

2830
export default function App() {
2931
return (
3032
<ApolloProvider client={client}>
3133
<ChakraProvider theme={theme}>
3234
<UserProvider>
3335
<ThemeProvider>
34-
<Router>
35-
<Layout>
36-
<FiltersProvider>
37-
<Filters />
38-
36+
<FiltersProvider>
37+
<Router>
38+
<Layout>
3939
<Routes>
40-
<Route path="/" element={<Home />} />
40+
<Route element={<Filters />}>
41+
<Route path="/" element={<Home />} />
42+
<Route path="/my-snippets" element={<MySnippets />} />
43+
<Route
44+
path="/favorite-snippets"
45+
element={<FavoriteSnippets />}
46+
/>
47+
<Route path="/my-cookbooks" element={<MyCookbooks />} />
48+
<Route
49+
path="/favorite-cookbooks"
50+
element={<FavoriteCookbooks />}
51+
/>
52+
<Route path="/team-snippets" element={<TeamSnippets />} />
53+
<Route
54+
path="/team-cookbooks"
55+
element={<TeamCookbooks />}
56+
/>
57+
</Route>
4158

42-
<Route path="/my-snippets" element={<MySnippets />} />
4359
<Route
44-
path="/favorite-snippets"
45-
element={<FavoriteSnippets />}
60+
path="/view-snippet/:snippetId"
61+
element={<ViewSnippet />}
4662
/>
47-
<Route path="/my-cookbooks" element={<MyCookbooks />} />
4863
<Route
49-
path="/favorite-cookbooks"
50-
element={<FavoriteCookbooks />}
64+
path="/view-cookbook/:cookbookId"
65+
element={<ViewCookbookSnippets />}
5166
/>
52-
<Route path="/team-snippets" element={<TeamSnippets />} />
53-
<Route path="/team-cookbooks" element={<TeamCookbooks />} />
5467
</Routes>
55-
</FiltersProvider>
56-
</Layout>
57-
</Router>
68+
</Layout>
69+
</Router>
70+
</FiltersProvider>
5871
</ThemeProvider>
5972
</UserProvider>
6073
</ChakraProvider>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { Flex, Text } from '@chakra-ui/react';
2+
import { Avatar } from '@codiga/components';
3+
import { PublicUser } from '../../types/userTypes';
4+
import { getAvatarUrl } from '../../utils/userUtils';
5+
import UserLink from '../UserLink';
6+
7+
type AvatarAndNameProps = {
8+
owner?: PublicUser;
9+
};
10+
11+
export default function AvatarAndName({ owner = {} }: AvatarAndNameProps) {
12+
return (
13+
<Flex alignItems="center" gap="space_8">
14+
<Avatar
15+
size="xs"
16+
name={owner?.displayName || 'Anonymous'}
17+
src={getAvatarUrl({ id: owner?.id })}
18+
/>
19+
<Text
20+
size="xs"
21+
noOfLines={1}
22+
maxW="300px"
23+
display="inline-block"
24+
whiteSpace="nowrap"
25+
>
26+
<UserLink owner={owner} />
27+
</Text>
28+
</Flex>
29+
);
30+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default } from './AvatarAndName';
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { IconButton } from '@chakra-ui/react';
2+
import { ChevronLeftIcon } from '@codiga/components';
3+
import { useNavigate } from 'react-router-dom';
4+
5+
export default function BackButton() {
6+
const navigate = useNavigate();
7+
8+
return (
9+
<IconButton
10+
variant="ghost"
11+
onClick={() => navigate(-1)}
12+
h="28px"
13+
minW="28px"
14+
fontSize="12px"
15+
icon={<ChevronLeftIcon />}
16+
aria-label="go back"
17+
_focus={{
18+
boxShadow: 'none',
19+
}}
20+
/>
21+
);
22+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default } from './BackButton';

0 commit comments

Comments
 (0)