From 0087c915515e0cc3e167247408f04a76e3453d19 Mon Sep 17 00:00:00 2001 From: Jamie Pine Date: Sat, 23 Apr 2022 10:49:24 -0700 Subject: [PATCH 1/5] added landing page footer + fix react query bug --- apps/landing/package.json | 2 + apps/landing/src/App.tsx | 32 ++++++--- apps/landing/src/components/Footer.tsx | 67 +++++++++++++++++++ docs/product/faq.md | 4 ++ docs/product/marketing.md | 6 ++ packages/interface/src/App.tsx | 5 +- .../interface/src/components/file/Sidebar.tsx | 5 +- packages/interface/src/style.scss | 4 ++ packages/ui/style/style.scss | 5 +- pnpm-lock.yaml | 20 +++++- 10 files changed, 132 insertions(+), 18 deletions(-) create mode 100644 apps/landing/src/components/Footer.tsx create mode 100644 docs/product/marketing.md create mode 100644 packages/interface/src/style.scss diff --git a/apps/landing/package.json b/apps/landing/package.json index 2986f94dc..00f628f5c 100644 --- a/apps/landing/package.json +++ b/apps/landing/package.json @@ -8,6 +8,7 @@ "preview": "vite preview" }, "dependencies": { + "@icons-pack/react-simple-icons": "^4.6.1", "@sd/client": "workspace:*", "@sd/core": "workspace:*", "@sd/interface": "workspace:*", @@ -17,6 +18,7 @@ "react": "^18.0.0", "react-dom": "^18.0.0", "react-tsparticles": "^2.0.6", + "simple-icons": "^6.19.0", "tsparticles": "^2.0.6" }, "devDependencies": { diff --git a/apps/landing/src/App.tsx b/apps/landing/src/App.tsx index e127364b7..83ca1c94f 100644 --- a/apps/landing/src/App.tsx +++ b/apps/landing/src/App.tsx @@ -6,11 +6,12 @@ import { ReactComponent as GithubLogo } from './assets/github.svg'; import { ReactComponent as AppleLogo } from './assets/apple.svg'; import { ReactComponent as AppLogo } from './assets/app-logo.svg'; import NavBar from './components/NavBar'; +import { Footer } from './components/Footer'; interface SectionProps { orientation: 'left' | 'right'; heading?: string; - description?: string; + description?: string | React.ReactNode; children?: React.ReactNode; } @@ -46,7 +47,8 @@ function App() {
{/* */}

- The file explorer from the future + {/* One space, all your drives. */} + The file explorer from the future.

Manage files across all devices, drives and clouds from one place. @@ -80,11 +82,25 @@ function App() { />

+ Using content addressable storage in a virtual distributed filesystem, Spacedrive + securely combines the storage capacity and processing power of your devices into one. +
+
+ Organize files across many devices in one place. From cloud services to offline hard + drives, Spacedrive combines the storage capacity and processing power of your devices + into one personal distributed cloud, that is both secure and intuitive to use. +
+
+ For independent creatives, hoarders and those that want to own their digital + footprint. Spacedrive provides a file management experience like no other, and its + completely free. + + } /> -
-
+ /> */} +
diff --git a/apps/landing/src/components/Footer.tsx b/apps/landing/src/components/Footer.tsx new file mode 100644 index 000000000..7c1855d2e --- /dev/null +++ b/apps/landing/src/components/Footer.tsx @@ -0,0 +1,67 @@ +import { ReactComponent as AppLogo } from '../assets/app-logo.svg'; +import { + Twitter, + Discord, + Instagram, + Github, + Opencollective +} from '@icons-pack/react-simple-icons'; + +function FooterLink(props: { children: string; link: string }) { + return ( + + {props.children} + + ); +} + +export function Footer() { + return ( + + ); +} diff --git a/docs/product/faq.md b/docs/product/faq.md index bbe08cf68..36e41a2f7 100644 --- a/docs/product/faq.md +++ b/docs/product/faq.md @@ -18,6 +18,10 @@ This software is aimed at independent creatives such as filmmakers, streamers, m In the same way we use finance apps to consolidate our books, Spacedrive consolidates files and the metadata associated with them. If you have external hard drives, cloud accounts and more than one device—you'll get a birds eye view of every file you own. With the ability to create folders, tags and albums that contain files from all different locations. +## Where are my files stored? + +Exactly where they already are, Spacedrive simply indexes your existing storage locations, extracting metadata and fingerprinting the byte data. However, it will have the power to transfer files at your command. + ## What makes this different to Dropbox or Google Drive? It is not a storage provider, Spacedrive is simply a database that exists on top of existing storage layers, from cloud services like Dropbox, Google Drive and iCloud to physical devices and external drives you already own. It doesn't provide you more storage, rather a supercharged view of your existing storage. diff --git a/docs/product/marketing.md b/docs/product/marketing.md new file mode 100644 index 000000000..809ea6a7d --- /dev/null +++ b/docs/product/marketing.md @@ -0,0 +1,6 @@ +### One space, all your drives. + +### The file explorer from the future. + +### All your files in one space. + diff --git a/packages/interface/src/App.tsx b/packages/interface/src/App.tsx index 13e070193..a0460e3dd 100644 --- a/packages/interface/src/App.tsx +++ b/packages/interface/src/App.tsx @@ -26,6 +26,7 @@ import { BaseTransport, ClientProvider, setTransport } from '@sd/client'; import { Button } from '@sd/ui'; import { CoreEvent } from '@sd/core'; import clsx from 'clsx'; +import './style.scss'; const queryClient = new QueryClient(); @@ -183,9 +184,7 @@ export default function App(props: AppProps) { window.ReactQueryClient = queryClient; } - useEffect(() => { - setTransport(props.transport); - }, [props.transport]); + setTransport(props.transport); console.log('App props', props); diff --git a/packages/interface/src/components/file/Sidebar.tsx b/packages/interface/src/components/file/Sidebar.tsx index a6274fb34..b0bce3b40 100644 --- a/packages/interface/src/components/file/Sidebar.tsx +++ b/packages/interface/src/components/file/Sidebar.tsx @@ -58,9 +58,10 @@ export function MacOSTrafficLights() { export const Sidebar: React.FC = (props) => { const appPropsContext = useContext(AppPropsContext); - const { data: locations } = useBridgeQuery('SysGetLocations', undefined, {}); + const { data: locations } = useBridgeQuery('SysGetLocations'); + const { data: clientState } = useBridgeQuery('ClientGetState'); + const { mutate: createLocation } = useBridgeCommand('LocCreate'); - const { data: clientState } = useBridgeQuery('ClientGetState', undefined, {}); const tags = [ { id: 1, name: 'Keepsafe', color: '#FF6788' }, diff --git a/packages/interface/src/style.scss b/packages/interface/src/style.scss new file mode 100644 index 000000000..43ca841e1 --- /dev/null +++ b/packages/interface/src/style.scss @@ -0,0 +1,4 @@ +a, +button { + @apply cursor-default; +} \ No newline at end of file diff --git a/packages/ui/style/style.scss b/packages/ui/style/style.scss index 2ddc84c1b..44f7c839b 100644 --- a/packages/ui/style/style.scss +++ b/packages/ui/style/style.scss @@ -2,10 +2,7 @@ @tailwind components; @tailwind utilities; -a, -button { - @apply cursor-default; -} + .html { background: #404040; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 89ca22661..cc08afb9b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -69,6 +69,7 @@ importers: apps/landing: specifiers: + '@icons-pack/react-simple-icons': ^4.6.1 '@sd/client': workspace:* '@sd/core': workspace:* '@sd/interface': workspace:* @@ -83,12 +84,14 @@ importers: react: ^18.0.0 react-dom: ^18.0.0 react-tsparticles: ^2.0.6 + simple-icons: ^6.19.0 tailwind: ^4.0.0 tsparticles: ^2.0.6 typescript: ^4.6.3 vite: ^2.9.5 vite-plugin-svgr: ^1.1.0 dependencies: + '@icons-pack/react-simple-icons': 4.6.1_react@18.0.0 '@sd/client': link:../../packages/client '@sd/core': link:../../core '@sd/interface': link:../../packages/interface @@ -98,6 +101,7 @@ importers: react: 18.0.0 react-dom: 18.0.0_react@18.0.0 react-tsparticles: 2.0.6_react@18.0.0 + simple-icons: 6.19.0 tsparticles: 2.0.6 devDependencies: '@types/react': 18.0.5 @@ -764,6 +768,15 @@ packages: react: 18.0.0 dev: false + /@icons-pack/react-simple-icons/4.6.1_react@18.0.0: + resolution: {integrity: sha512-ICONbofFzeTkXvmbnptDv4P9cqtW/N/8EFOqyzJQJ80b8fJoLzqhM7EKslBmWziIwjY9FBnOoL2ofzQOoDG1Gg==} + peerDependencies: + react: ^16.13 || ^17 + dependencies: + prop-types: 15.8.1 + react: 18.0.0 + dev: false + /@jridgewell/resolve-uri/3.0.5: resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} engines: {node: '>=6.0.0'} @@ -4225,6 +4238,11 @@ packages: get-intrinsic: 1.1.1 object-inspect: 1.12.0 + /simple-icons/6.19.0: + resolution: {integrity: sha512-HI7X+Ibu9FbphEJZzkOGu820Mp9JhUEAGf3qjooQkBXSgASt3HCJlhVsKxLzPAaXiSSMWupsf+rB2DwFQbRrKg==} + engines: {node: '>=0.12.18'} + dev: false + /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -5131,7 +5149,7 @@ packages: vite: ^2.6.0 dependencies: '@svgr/core': 6.2.1 - vite: 2.9.5_sass@1.50.0 + vite: 2.9.5 transitivePeerDependencies: - supports-color dev: true From b38a20df6bcb1d7803dd4e66990ab8e604ef2f91 Mon Sep 17 00:00:00 2001 From: Jamie Pine Date: Sat, 23 Apr 2022 12:36:09 -0700 Subject: [PATCH 2/5] better landing --- apps/landing/src/App.tsx | 41 +++++++++++++++-------- apps/landing/src/assets/apple.svg | 12 ------- apps/landing/src/assets/github.svg | 1 - apps/landing/src/assets/windows.svg | 46 -------------------------- apps/landing/src/components/Footer.tsx | 39 +++++++++++++++------- apps/landing/src/components/NavBar.tsx | 26 ++++++++++----- apps/web/src/App.tsx | 6 ++-- 7 files changed, 75 insertions(+), 96 deletions(-) delete mode 100644 apps/landing/src/assets/apple.svg delete mode 100644 apps/landing/src/assets/github.svg delete mode 100644 apps/landing/src/assets/windows.svg diff --git a/apps/landing/src/App.tsx b/apps/landing/src/App.tsx index 83ca1c94f..16aeb96b9 100644 --- a/apps/landing/src/App.tsx +++ b/apps/landing/src/App.tsx @@ -2,11 +2,9 @@ import { Button } from '@sd/ui'; import { Bubbles } from './Bubbles'; import './index.css'; -import { ReactComponent as GithubLogo } from './assets/github.svg'; -import { ReactComponent as AppleLogo } from './assets/apple.svg'; -import { ReactComponent as AppLogo } from './assets/app-logo.svg'; import NavBar from './components/NavBar'; import { Footer } from './components/Footer'; +import { Apple, Github, Linux, Windows } from '@icons-pack/react-simple-icons'; interface SectionProps { orientation: 'left' | 'right'; @@ -59,14 +57,25 @@ function App() { {/* */} - - + + + +

Available on macOS (Intel & Apple Silicon), Windows and Linux. @@ -89,14 +98,18 @@ function App() { securely combines the storage capacity and processing power of your devices into one.

- Organize files across many devices in one place. From cloud services to offline hard - drives, Spacedrive combines the storage capacity and processing power of your devices - into one personal distributed cloud, that is both secure and intuitive to use. -
-
For independent creatives, hoarders and those that want to own their digital footprint. Spacedrive provides a file management experience like no other, and its completely free. +
+
+ + Find out more → + } /> diff --git a/apps/landing/src/assets/apple.svg b/apps/landing/src/assets/apple.svg deleted file mode 100644 index d62b0ae35..000000000 --- a/apps/landing/src/assets/apple.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/apps/landing/src/assets/github.svg b/apps/landing/src/assets/github.svg deleted file mode 100644 index aa05db9c5..000000000 --- a/apps/landing/src/assets/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/landing/src/assets/windows.svg b/apps/landing/src/assets/windows.svg deleted file mode 100644 index 05142caaf..000000000 --- a/apps/landing/src/assets/windows.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/landing/src/components/Footer.tsx b/apps/landing/src/components/Footer.tsx index 7c1855d2e..cc0dc56c2 100644 --- a/apps/landing/src/components/Footer.tsx +++ b/apps/landing/src/components/Footer.tsx @@ -4,12 +4,13 @@ import { Discord, Instagram, Github, - Opencollective + Opencollective, + Twitch } from '@icons-pack/react-simple-icons'; function FooterLink(props: { children: string; link: string }) { return ( - + {props.children} ); @@ -25,11 +26,24 @@ export function Footer() {

Spacedrive

© Copyright 2022 Jamie Pine

- - - - - + + + + + + + + + + + + + + + + + +
@@ -42,12 +56,11 @@ export function Footer() { Changelog Blog -
+

Downloads

macOS Windows Linux - Blog

Developers

@@ -55,11 +68,13 @@ export function Footer() { Contribute Extensions Self Host - Blog
-

Company

- Gaming +

Org

+ Open Collective + Privacy + Terms + License
diff --git a/apps/landing/src/components/NavBar.tsx b/apps/landing/src/components/NavBar.tsx index ffe6875e6..16aa606e9 100644 --- a/apps/landing/src/components/NavBar.tsx +++ b/apps/landing/src/components/NavBar.tsx @@ -2,9 +2,13 @@ import clsx from 'clsx'; import React, { useEffect, useState } from 'react'; import { ReactComponent as AppLogo } from '../assets/app-logo.svg'; -function NavLink(props: { children: string }) { +function NavLink(props: { link?: string; children: string }) { return ( - + {props.children} ); @@ -37,14 +41,18 @@ export default function NavBar() { BETA -
- Product - Documentation - Support - FAQ - Changelog - Blog +
+ Features + Docs + + FAQ + + + Changelog + + Sponsor us
+
); diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index b3a3b0b6b..78ff96559 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -73,8 +73,10 @@ function App() { convertFileSrc={function (url: string): string { return url; }} - openDialog={function (options: { directory?: boolean }): Promise { - return Promise.resolve(''); + openDialog={function (options: { + directory?: boolean | undefined; + }): Promise { + return Promise.resolve([]); }} /> From 58611cc66e4159731e31f22535c84d728c98d434 Mon Sep 17 00:00:00 2001 From: Jamie Pine Date: Sat, 23 Apr 2022 12:55:31 -0700 Subject: [PATCH 3/5] working landing links --- apps/landing/src/App.tsx | 4 +-- apps/landing/src/components/Footer.tsx | 48 +++++++++++++++++++------- apps/landing/src/components/NavBar.tsx | 2 +- docs/developer/contributing.md | 3 ++ docs/product/marketing.md | 2 ++ 5 files changed, 43 insertions(+), 16 deletions(-) create mode 100644 docs/developer/contributing.md diff --git a/apps/landing/src/App.tsx b/apps/landing/src/App.tsx index 16aeb96b9..6c8e12c1f 100644 --- a/apps/landing/src/App.tsx +++ b/apps/landing/src/App.tsx @@ -46,7 +46,7 @@ function App() { {/* */}

{/* One space, all your drives. */} - The file explorer from the future. + The file explorer of the future.

Manage files across all devices, drives and clouds from one place. @@ -91,7 +91,7 @@ function App() { />

Using content addressable storage in a virtual distributed filesystem, Spacedrive diff --git a/apps/landing/src/components/Footer.tsx b/apps/landing/src/components/Footer.tsx index cc0dc56c2..4098c5660 100644 --- a/apps/landing/src/components/Footer.tsx +++ b/apps/landing/src/components/Footer.tsx @@ -50,11 +50,19 @@ export function Footer() {

About

- Team - FAQ - Mission - Changelog - Blog + + Team + + + FAQ + + Mission + + Changelog + +
+ Blog +

Downloads

@@ -64,17 +72,31 @@ export function Footer() {

Developers

- Documentation - Contribute - Extensions - Self Host + + Documentation + + + Contribute + +
+ Extensions +
+
+ Self Host +

Org

- Open Collective - Privacy - Terms - License + Open Collective + + License + +
+ Privacy +
+
+ Terms +
diff --git a/apps/landing/src/components/NavBar.tsx b/apps/landing/src/components/NavBar.tsx index 16aa606e9..c50e687b7 100644 --- a/apps/landing/src/components/NavBar.tsx +++ b/apps/landing/src/components/NavBar.tsx @@ -44,7 +44,7 @@ export default function NavBar() {
Features Docs - + FAQ diff --git a/docs/developer/contributing.md b/docs/developer/contributing.md new file mode 100644 index 000000000..738616010 --- /dev/null +++ b/docs/developer/contributing.md @@ -0,0 +1,3 @@ +# Contributing to Spacedrive + +For now, if you wish to make any changes other than a bug fix, please create an issue first to get the developer's input. The project is in its infancy and the developers are making frequent breaking changes. \ No newline at end of file diff --git a/docs/product/marketing.md b/docs/product/marketing.md index 809ea6a7d..0df5641c3 100644 --- a/docs/product/marketing.md +++ b/docs/product/marketing.md @@ -2,5 +2,7 @@ ### The file explorer from the future. +### The file explorer of the future. + ### All your files in one space. From b3b2ce54ea99c3d26b3bfd77cfdb0a11a8c9b5e2 Mon Sep 17 00:00:00 2001 From: Jamie Pine Date: Sat, 23 Apr 2022 21:22:58 -0700 Subject: [PATCH 4/5] landing improvements --- apps/landing/src/App.tsx | 51 +++++++++++++------------------ packages/interface/src/style.scss | 6 +++- 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/apps/landing/src/App.tsx b/apps/landing/src/App.tsx index 6c8e12c1f..dc2423016 100644 --- a/apps/landing/src/App.tsx +++ b/apps/landing/src/App.tsx @@ -5,6 +5,7 @@ import './index.css'; import NavBar from './components/NavBar'; import { Footer } from './components/Footer'; import { Apple, Github, Linux, Windows } from '@icons-pack/react-simple-icons'; +import { useState } from 'react'; interface SectionProps { orientation: 'left' | 'right'; @@ -39,17 +40,18 @@ function Section(props: SectionProps = { orientation: 'left' }) { } function App() { + const [showApp, setShowApp] = useState(true); return (
{/* */}

- {/* One space, all your drives. */} - The file explorer of the future. + {/* One space, all your drives. */}A file explorer from the future.

-

- Manage files across all devices, drives and clouds from one place. +

+ Combine your drives and clouds into one database that you can organize and explore from + any device.
Designed for creators, hoarders and the painfully disorganized.

@@ -83,24 +85,25 @@ function App() { Coming soon to iOS & Android.

-