From 6b9be8b080f698d601e66efb1535c689606f3c0d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adam=20Zieli=C5=84ski?=
Date: Sun, 6 Oct 2024 23:18:41 +0200
Subject: [PATCH 01/13] Initial version of the contextual settings dropdown
---
.../src/components/browser-chrome/index.tsx | 39 ++
.../browser-chrome/style.module.css | 4 +
.../edit-site-settings-button/index.tsx | 42 ++
.../style.module.css | 3 +
.../components/playground-viewport/index.tsx | 19 +-
.../src/components/site-manager/icons.tsx | 3 +-
.../components/site-manager/sidebar/index.tsx | 183 +++---
.../site-manager/sidebar/style.module.css | 2 +-
.../site-manager/site-create-button/index.tsx | 50 --
.../site-manager/site-info-panel/index.tsx | 379 +++---------
.../site-info-panel/style.module.css | 26 +-
.../active-site-settings-form.tsx | 35 ++
.../site-manager/site-settings-form/index.tsx | 562 +-----------------
.../stored-site-settings-form.tsx} | 89 ++-
.../site-settings-form/style.module.css | 43 ++
.../temporary-site-settings-form.tsx} | 54 +-
.../unconnected-site-settings-form.tsx | 497 ++++++++++++++++
.../site-manager/storage-type/index.tsx | 4 +-
.../website/src/lib/get-relative-date.ts | 28 +
19 files changed, 996 insertions(+), 1066 deletions(-)
create mode 100644 packages/playground/website/src/components/edit-site-settings-button/index.tsx
create mode 100644 packages/playground/website/src/components/edit-site-settings-button/style.module.css
delete mode 100644 packages/playground/website/src/components/site-manager/site-create-button/index.tsx
create mode 100644 packages/playground/website/src/components/site-manager/site-settings-form/active-site-settings-form.tsx
rename packages/playground/website/src/components/site-manager/{site-edit-button/index.tsx => site-settings-form/stored-site-settings-form.tsx} (52%)
rename packages/playground/website/src/components/site-manager/{start-similar-site-button/index.tsx => site-settings-form/temporary-site-settings-form.tsx} (70%)
create mode 100644 packages/playground/website/src/components/site-manager/site-settings-form/unconnected-site-settings-form.tsx
create mode 100644 packages/playground/website/src/lib/get-relative-date.ts
diff --git a/packages/playground/website/src/components/browser-chrome/index.tsx b/packages/playground/website/src/components/browser-chrome/index.tsx
index 45efa40405..9aa133372b 100644
--- a/packages/playground/website/src/components/browser-chrome/index.tsx
+++ b/packages/playground/website/src/components/browser-chrome/index.tsx
@@ -9,6 +9,10 @@ import {
useActiveSite,
} from '../../lib/state/redux/store';
import { SyncLocalFilesButton } from '../sync-local-files-button';
+import { Dropdown, Icon } from '@wordpress/components';
+import { cog } from '@wordpress/icons';
+import Button from '../button';
+import { ActiveSiteSettingsForm } from '../site-manager/site-settings-form';
interface BrowserChromeProps {
children?: React.ReactNode;
@@ -57,6 +61,41 @@ export default function BrowserChrome({
+
(
+
+ )}
+ renderContent={({ onClose }) => (
+
+
+
+ Playground settings
+
+
+
+
+ )}
+ />
{activeSite?.metadata?.storage === 'local-fs' ? (
) : null}
diff --git a/packages/playground/website/src/components/browser-chrome/style.module.css b/packages/playground/website/src/components/browser-chrome/style.module.css
index c29d85585b..9b08d513f1 100644
--- a/packages/playground/website/src/components/browser-chrome/style.module.css
+++ b/packages/playground/website/src/components/browser-chrome/style.module.css
@@ -77,6 +77,10 @@ body.is-embedded .fake-window-wrapper {
pointer-events: none;
}
+.padded {
+ padding: 24px;
+}
+
@media (max-width: 1100px) {
.has-site-manager {
.window-controls {
diff --git a/packages/playground/website/src/components/edit-site-settings-button/index.tsx b/packages/playground/website/src/components/edit-site-settings-button/index.tsx
new file mode 100644
index 0000000000..c2a89a2ee1
--- /dev/null
+++ b/packages/playground/website/src/components/edit-site-settings-button/index.tsx
@@ -0,0 +1,42 @@
+import css from './style.module.css';
+import { useAppDispatch } from '../../lib/state/redux/store';
+
+import Button from '../button';
+import { setSiteManagerOpen } from '../../lib/state/redux/slice-ui';
+
+function SiteManagerIcon() {
+ return (
+
+ );
+}
+
+export function OpenSiteManagerButton() {
+ const dispatch = useAppDispatch();
+
+ const onClick = () => {
+ dispatch(setSiteManagerOpen(true));
+ };
+ return (
+
+ );
+}
diff --git a/packages/playground/website/src/components/edit-site-settings-button/style.module.css b/packages/playground/website/src/components/edit-site-settings-button/style.module.css
new file mode 100644
index 0000000000..94c84dd084
--- /dev/null
+++ b/packages/playground/website/src/components/edit-site-settings-button/style.module.css
@@ -0,0 +1,3 @@
+.open-site-manager-button:global(> svg) {
+ margin-top: 4px;
+}
diff --git a/packages/playground/website/src/components/playground-viewport/index.tsx b/packages/playground/website/src/components/playground-viewport/index.tsx
index f1d3666950..0614f6a7ac 100644
--- a/packages/playground/website/src/components/playground-viewport/index.tsx
+++ b/packages/playground/website/src/components/playground-viewport/index.tsx
@@ -19,7 +19,7 @@ import {
selectTemporarySites,
} from '../../lib/state/redux/slice-sites';
import classNames from 'classnames';
-import { SiteCreateButton } from '../site-manager/site-create-button';
+import { PlaygroundRoute, redirectTo } from '../../lib/state/url/router';
export const supportedDisplayModes = [
'browser-full-screen',
@@ -130,14 +130,15 @@ export const KeepAliveTemporarySitesViewport = () => {
className={css.siteErrorContent}
style={{ textAlign: 'center' }}
>
- You don't have any sites right now
-
- {(onClick) => (
-
- )}
-
+ You don't have any Playgrounds right now
+
diff --git a/packages/playground/website/src/components/site-manager/icons.tsx b/packages/playground/website/src/components/site-manager/icons.tsx
index a08409089f..aef46a86af 100644
--- a/packages/playground/website/src/components/site-manager/icons.tsx
+++ b/packages/playground/website/src/components/site-manager/icons.tsx
@@ -93,13 +93,14 @@ export const FolderIcon = (
);
-export const ClockIcon = (
+export const ClockIcon = (props?: React.SVGProps) => (
}
From 96e9161b40d58fa8d174198ef99d365a3b0dc679 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adam=20Zieli=C5=84ski?=
Date: Mon, 7 Oct 2024 01:41:59 +0200
Subject: [PATCH 07/13] limit the size if the settings popover
---
.../website/src/components/browser-chrome/index.tsx | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/packages/playground/website/src/components/browser-chrome/index.tsx b/packages/playground/website/src/components/browser-chrome/index.tsx
index 9aa133372b..3a9ff28b97 100644
--- a/packages/playground/website/src/components/browser-chrome/index.tsx
+++ b/packages/playground/website/src/components/browser-chrome/index.tsx
@@ -81,7 +81,13 @@ export default function BrowserChrome({
)}
renderContent={({ onClose }) => (
-
+
Date: Mon, 7 Oct 2024 01:47:34 +0200
Subject: [PATCH 08/13] Allow site deletion before the Playground client is
ready
---
.../src/components/site-manager/site-info-panel/index.tsx | 1 -
1 file changed, 1 deletion(-)
diff --git a/packages/playground/website/src/components/site-manager/site-info-panel/index.tsx b/packages/playground/website/src/components/site-manager/site-info-panel/index.tsx
index 0f4a5be6c0..9f61eaebf0 100644
--- a/packages/playground/website/src/components/site-manager/site-info-panel/index.tsx
+++ b/packages/playground/website/src/components/site-manager/site-info-panel/index.tsx
@@ -253,7 +253,6 @@ export function SiteInfoPanel({