diff --git a/app/all-collections/page.tsx b/app/all-collections/page.tsx
index df9ea53b..76f96940 100644
--- a/app/all-collections/page.tsx
+++ b/app/all-collections/page.tsx
@@ -1,5 +1,6 @@
import Head from 'next/head';
+import { Suspense } from 'react';
import { dehydrate } from 'react-query/core';
import Hydrate from '../../src/components/HydrateClient';
@@ -42,7 +43,9 @@ const Page = async () => {
-
+
+
+
>
diff --git a/public/graasp.svg b/app/icon.svg
similarity index 82%
rename from public/graasp.svg
rename to app/icon.svg
index 0dc7adce..76b0fc3c 100644
--- a/public/graasp.svg
+++ b/app/icon.svg
@@ -5,31 +5,7 @@
viewBox="0 0 200 200"
version="1.1"
id="svg3"
- sodipodi:docname="graasp.svg"
- inkscape:version="1.2.2 (b0a84865, 2022-12-01)"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg">
-
+>
{
// TODO: change lang
-
- {children}
-
+
+
+ {children}
+
+
);
diff --git a/cypress/e2e/myLists/myPublishments.cy.ts b/cypress/e2e/myLists/myPublishments.cy.ts
deleted file mode 100644
index b51cc996..00000000
--- a/cypress/e2e/myLists/myPublishments.cy.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-// todo: enable back when we have a proper page
-// describe('My Published Items', () => {
-// describe('Current user', () => {
-// // check if title and headings are displayed correctly
-// it('display published items', () => {
-// cy.setUpApi({ currentMember: CURRENT_USER, items: PUBLISHED_ITEMS });
-// cy.visit(MY_LIST_ROUTE);
-
-// // click my publishment tab
-// cy.get(
-// `#${buildMyListNavigationTabId(MY_LIST_TAB_NAMES.MY_PUBLISHMENTS)}`,
-// ).click();
-
-// cy.get(`#${MY_PUBLISHED_COLLECTIONS_ID}`)
-// .children()
-// .should('have.length', getNumberOfOwnPublishedItems(CURRENT_USER.id));
-// });
-// });
-// });
diff --git a/package.json b/package.json
index 400ad7bf..27526ec4 100644
--- a/package.json
+++ b/package.json
@@ -34,9 +34,9 @@
"@emotion/server": "11.11.0",
"@emotion/styled": "11.11.0",
"@graasp/query-client": "2.2.1",
- "@graasp/sdk": "3.4.1",
+ "@graasp/sdk": "github:graasp/graasp-sdk#build-with-vite",
"@graasp/translations": "1.22.1",
- "@graasp/ui": "4.2.0",
+ "@graasp/ui": "4.3.1",
"@mui/icons-material": "5.14.19",
"@mui/lab": "5.0.0-alpha.140",
"@mui/material": "5.14.19",
@@ -45,6 +45,7 @@
"@testing-library/react": "14.1.2",
"@testing-library/user-event": "14.5.1",
"@trivago/prettier-plugin-sort-imports": "4.3.0",
+ "date-fns": "3.3.1",
"eslint-config-next": "14.0.4",
"http-status-codes": "2.3.0",
"i18next": "23.7.16",
@@ -53,8 +54,7 @@
"lodash.isobject": "3.0.2",
"lodash.isstring": "4.0.1",
"lodash.truncate": "4.4.2",
- "luxon": "3.4.4",
- "next": "14.0.4",
+ "next": "14.1.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-ga4": "2.1.0",
@@ -73,7 +73,6 @@
"@cypress/code-coverage": "3.12.18",
"@types/lodash.groupby": "4.6.9",
"@types/lodash.truncate": "4.4.9",
- "@types/luxon": "3.3.8",
"@types/node": "20.10.8",
"@types/react": "18.2.47",
"@types/react-dom": "18.2.18",
@@ -108,5 +107,8 @@
"pages/api/__coverage__.js"
]
},
+ "resolutions": {
+ "@graasp/sdk": "github:graasp/graasp-sdk#build-with-vite"
+ },
"packageManager": "yarn@4.0.2"
}
diff --git a/public/defaultAvatar.png b/public/defaultAvatar.png
deleted file mode 100644
index e4631202..00000000
Binary files a/public/defaultAvatar.png and /dev/null differ
diff --git a/public/favicon.ico b/public/favicon.ico
deleted file mode 100644
index ea18d731..00000000
Binary files a/public/favicon.ico and /dev/null differ
diff --git a/public/homePageIcon.png b/public/homePageIcon.png
deleted file mode 100644
index 4e38680c..00000000
Binary files a/public/homePageIcon.png and /dev/null differ
diff --git a/public/icon.png b/public/icon.png
deleted file mode 100644
index 0fe4a09f..00000000
Binary files a/public/icon.png and /dev/null differ
diff --git a/src/components/collection/ChildrenCard.tsx b/src/components/collection/ChildrenCard.tsx
index 717f1e5a..9f291269 100644
--- a/src/components/collection/ChildrenCard.tsx
+++ b/src/components/collection/ChildrenCard.tsx
@@ -1,4 +1,3 @@
-import { DateTime } from 'luxon';
import dynamic from 'next/dynamic';
import Link from 'next/link';
@@ -15,7 +14,12 @@ import {
} from '@mui/material';
import Typography from '@mui/material/Typography';
-import { DiscriminatedItem, ItemType, ThumbnailSize } from '@graasp/sdk';
+import {
+ DiscriminatedItem,
+ ItemType,
+ ThumbnailSize,
+ formatDate,
+} from '@graasp/sdk';
import { COLLECTION_CARD_BORDER_RADIUS } from '../../config/cssStyles';
import { useLibraryTranslation } from '../../config/i18n';
@@ -133,7 +137,7 @@ export const SubItemCard: React.FC = ({
type FileChildrenCardProps = {
item: DiscriminatedItem;
- lang?: string;
+ lang: string;
};
export const FileChildrenCard: React.FC = ({
@@ -153,9 +157,7 @@ export const FileChildrenCard: React.FC = ({
const subtext = item.updatedAt
? t(LIBRARY.SUMMARY_BROWSE_FILE_UPDATED, {
- date: DateTime.fromMillis(
- new Date(item.updatedAt).getTime(),
- ).toLocaleString(DateTime.DATE_FULL, { locale: lang }),
+ date: formatDate(item.updatedAt, { locale: lang }),
})
: '...';
diff --git a/src/components/collection/CopyButton.tsx b/src/components/collection/CopyButton.tsx
index afc32686..a7e62cbc 100644
--- a/src/components/collection/CopyButton.tsx
+++ b/src/components/collection/CopyButton.tsx
@@ -5,7 +5,6 @@ import CircularProgress from '@mui/material/CircularProgress';
import IconButton from '@mui/material/IconButton';
import Tooltip from '@mui/material/Tooltip';
-import { ROOT_ID } from '../../config/constants';
import { useLibraryTranslation } from '../../config/i18n';
import {
TREE_MODAL_MY_ITEMS_ID,
@@ -42,11 +41,10 @@ export const useCopyAction = (id?: string) => {
ids: [id],
};
- payload.to = [
- ROOT_ID,
- TREE_MODAL_MY_ITEMS_ID,
- TREE_MODAL_SHARED_ITEMS_ID,
- ].includes(to)
+ // if the location to copy the item is MyItems or SharedItems root, then set the payload.to argument to be undefined
+ payload.to = [TREE_MODAL_MY_ITEMS_ID, TREE_MODAL_SHARED_ITEMS_ID].includes(
+ to,
+ )
? undefined
: to;
diff --git a/src/components/collection/Items.tsx b/src/components/collection/Items.tsx
index 6b0679d1..61e08037 100644
--- a/src/components/collection/Items.tsx
+++ b/src/components/collection/Items.tsx
@@ -83,7 +83,7 @@ const CollapsibleItemCategory: React.FC = ({
type ItemsProps = {
parentId: string;
- lang: string | undefined;
+ lang: string;
isTopLevel: boolean;
};
diff --git a/src/components/collection/summary/Summary.tsx b/src/components/collection/summary/Summary.tsx
index 6b2508fd..85652292 100644
--- a/src/components/collection/summary/Summary.tsx
+++ b/src/components/collection/summary/Summary.tsx
@@ -6,12 +6,9 @@ import { Stack, Typography } from '@mui/material';
import Box from '@mui/material/Box';
import Container from '@mui/material/Container';
-import { DiscriminatedItem, ItemPublished } from '@graasp/sdk';
+import { DiscriminatedItem, ItemPublished, ItemType } from '@graasp/sdk';
-import {
- ITEM_TYPES,
- MAX_COLLECTION_NAME_LENGTH,
-} from '../../../config/constants';
+import { MAX_COLLECTION_NAME_LENGTH } from '../../../config/constants';
import { useLibraryTranslation } from '../../../config/i18n';
import LIBRARY from '../../../langs/constants';
import { QueryClientContext } from '../../QueryClientContext';
@@ -88,13 +85,13 @@ const Summary = ({
truncatedName={truncatedName}
totalViews={totalViews}
/>
- {collection?.type === ITEM_TYPES.FOLDER && (
+ {collection?.type === ItemType.FOLDER && (
<>
diff --git a/src/config/constants.ts b/src/config/constants.ts
index 2afce1e8..dade3a74 100644
--- a/src/config/constants.ts
+++ b/src/config/constants.ts
@@ -1,57 +1,16 @@
-import { CategoryType, ThumbnailSize } from '@graasp/sdk';
-
-export const GRAASP_LOGO_HEADER_HEIGHT = 40;
+import { CategoryType } from '@graasp/sdk';
export const APP_NAME = 'Graasp';
export const APP_KEYWORDS = ['graasp', 'library'];
export const APP_AUTHOR = 'Graasp';
-export const DEFAULT_LANG = 'en';
-export const DEFAULT_USER_NAME = 'Anonymous';
export const DEFAULT_THUMBNAIL_ALT_TEXT = 'Thumbnail';
-export const MIN_CARD_WIDTH = 345;
-
-// math
-export const BLOCK_MATH_DIV = 'p';
-export const INLINE_MATH_DIV = 'span';
-export const BLOCK_MATH_INDICATOR = '\\[';
-export const INLINE_MATH_INDICATOR = '\\(';
-export const BLOCK_MATH_REGEX = /(\\\[(.*?)\\])/g;
-export const INLINE_MATH_REGEX = /(\\\((.*?)\\\))/g;
-
-export const ITEM_TYPES = {
- FOLDER: 'folder',
-};
-
-export const MIME_TYPES = {
- HTML: 'text/html',
- TEXT: 'text/plain',
-};
-
-export const MEMBER_TYPES = {
- OWNER: 'owner',
- CONTRIBUTOR: 'contributor',
-};
-
-export const ROOT_ID = 'ROOT';
-export const TREE_VIEW_HEIGHT = 300;
-export const TREE_VIEW_MIN_WIDTH = 350;
-
export const TWITTER_MESSAGE_MAX_LENGTH = 270;
export const MAIL_BREAK_LINE = '%0D%0A';
-export const LEFT_MENU_WIDTH = 300;
-
-export const PICTURE_QUALITIES = {
- LARGE: 'large',
- MEDIUM: 'medium',
-};
-export const DEFAULT_PICTURE_QUALITY = PICTURE_QUALITIES.LARGE;
export const MAX_COLLECTION_NAME_LENGTH = 100;
-export const CLIENT_ERROR_MESSAGE = 'Something went wrong!';
export const DEFAULT_ITEM_IMAGE_PATH = '/libraryDefault.svg';
-// export const DEFAULT_MEMBER_THUMBNAIL = '/defaultAvatar.png';
export const DEFAULT_MEMBER_THUMBNAIL = `data:image/svg+xml,${encodeURIComponent(`