diff --git a/package.json b/package.json index 32bf9c3ce..fbf9314a9 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,9 @@ "@stripe/stripe-js": "^1.13.2", "axios": "^0.20.0", "bootstrap": "^4.5.2", + "chrono-node": "^2.2.6", "comlink": "^4.3.0", + "debounce-promise": "^3.1.2", "exif-js": "^2.3.0", "formik": "^2.1.5", "heic2any": "^0.0.3", @@ -26,6 +28,7 @@ "libsodium-wrappers": "^0.7.8", "localforage": "^1.9.0", "next": "9.5.3", + "next-on-netlify": "^3.0.1", "next-with-workbox": "^2.0.1", "node-forge": "^0.10.0", "photoswipe": "file:./thirdparty/photoswipe", @@ -34,6 +37,7 @@ "react-burger-menu": "^3.0.4", "react-dom": "16.13.1", "react-dropzone": "^11.2.4", + "react-select": "^4.3.1", "react-top-loading-bar": "^2.0.1", "react-virtualized-auto-sizer": "^1.0.2", "react-window": "^1.8.6", @@ -50,17 +54,18 @@ }, "devDependencies": { "@next/bundle-analyzer": "^9.5.3", + "@types/debounce-promise": "^3.1.3", "@types/libsodium-wrappers": "^0.7.8", "@types/localforage": "^0.0.34", "@types/node": "^14.6.4", "@types/photoswipe": "^4.1.1", "@types/react": "^16.9.49", + "@types/react-select": "^4.0.15", "@types/react-window": "^1.8.2", "@types/react-window-infinite-loader": "^1.0.3", "@types/styled-components": "^5.1.3", "@types/yup": "^0.29.7", "babel-plugin-styled-components": "^1.11.1", - "next-on-netlify": "^2.4.0", "typescript": "^4.1.3", "worker-plugin": "^5.0.0" }, diff --git a/public/images/ente-256.png b/public/images/ente-256.png new file mode 100644 index 000000000..4e3b2a692 Binary files /dev/null and b/public/images/ente-256.png differ diff --git a/public/images/ente-512.png b/public/images/ente-512.png new file mode 100644 index 000000000..dd45f4cd5 Binary files /dev/null and b/public/images/ente-512.png differ diff --git a/public/images/favicon.png b/public/images/favicon.png new file mode 100644 index 000000000..2d769dadf Binary files /dev/null and b/public/images/favicon.png differ diff --git a/public/manifest.json b/public/manifest.json index 77989e2a1..cc017f39a 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -6,6 +6,16 @@ "src": "/images/ente-192.png", "type": "image/png", "sizes": "192x192" + }, + { + "src": "/images/ente-256.png", + "type": "image/png", + "sizes": "256x256" + }, + { + "src": "/images/ente-512.png", + "type": "image/png", + "sizes": "512x512" } ], "start_url": "/", diff --git a/src/components/CrossIcon.tsx b/src/components/CrossIcon.tsx new file mode 100644 index 000000000..fd466089b --- /dev/null +++ b/src/components/CrossIcon.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +export default function DateIcon(props) { + return ( + + + + ); +} + +DateIcon.defaultProps = { + height: 24, + width: 24, + viewBox: '0 0 24 24', +}; diff --git a/src/components/DateIcon.tsx b/src/components/DateIcon.tsx new file mode 100644 index 000000000..52db19589 --- /dev/null +++ b/src/components/DateIcon.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +export default function DateIcon(props) { + return ( + + + + ); +} + +DateIcon.defaultProps = { + height: 20, + width: 20, + viewBox: '0 0 24 24', +}; diff --git a/src/components/LocationIcon.tsx b/src/components/LocationIcon.tsx new file mode 100644 index 000000000..cdf258152 --- /dev/null +++ b/src/components/LocationIcon.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import styled from 'styled-components'; + +export default function LocationIcon(props) { + return ( + + + + + ); +} + +LocationIcon.defaultProps = { + height: 20, + width: 20, + viewBox: '0 0 24 24', +}; diff --git a/src/components/PhotoFrame.tsx b/src/components/PhotoFrame.tsx index c16edd277..dee3c5ee3 100644 --- a/src/components/PhotoFrame.tsx +++ b/src/components/PhotoFrame.tsx @@ -78,9 +78,9 @@ const EmptyScreen = styled.div` flex-direction: column; flex: 1; color: #2dc262; - + & > svg { - filter: drop-shadow(3px 3px 5px rgba(45,194,98,0.5)); + filter: drop-shadow(3px 3px 5px rgba(45, 194, 98, 0.5)); } `; @@ -101,6 +101,7 @@ interface Props { isFirstLoad; openFileUploader; loadingBar; + searchMode: boolean; } const PhotoFrame = ({ @@ -114,6 +115,7 @@ const PhotoFrame = ({ isFirstLoad, openFileUploader, loadingBar, + searchMode, }: Props) => { const [open, setOpen] = useState(false); const [currentIndex, setCurrentIndex] = useState(0); @@ -274,7 +276,7 @@ const PhotoFrame = ({ return ( <> - {!isFirstLoad && files.length == 0 ? ( + {!isFirstLoad && files.length == 0 && !searchMode ? (