+
+
+
+ Choose Custom Field Extension
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ null}
+ />
+
+
+ );
+};
diff --git a/plugins/scaffolder/src/legacy/TemplateEditorPage/TemplateEditor.tsx b/plugins/scaffolder/src/legacy/TemplateEditorPage/TemplateEditor.tsx
new file mode 100644
index 0000000000..f6e7b38d7d
--- /dev/null
+++ b/plugins/scaffolder/src/legacy/TemplateEditorPage/TemplateEditor.tsx
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2022 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { makeStyles } from '@material-ui/core';
+import React, { useState } from 'react';
+import { LegacyFieldExtensionOptions } from '@backstage/plugin-scaffolder-react/alpha';
+import { TemplateDirectoryAccess } from '../../lib/filesystem';
+import { LayoutOptions } from '@backstage/plugin-scaffolder-react';
+import { DirectoryEditorProvider } from '../../next/TemplateEditorPage/DirectoryEditorContext';
+import { DryRunProvider } from '../../next/TemplateEditorPage/DryRunContext';
+import { TemplateEditorBrowser } from '../../next/TemplateEditorPage/TemplateEditorBrowser';
+import { TemplateEditorTextArea } from '../../next/TemplateEditorPage/TemplateEditorTextArea';
+import { TemplateEditorForm } from './TemplateEditorForm';
+import { DryRunResults } from '../../next/TemplateEditorPage/DryRunResults';
+
+const useStyles = makeStyles({
+ // Reset and fix sizing to make sure scrolling behaves correctly
+ root: {
+ gridArea: 'pageContent',
+
+ display: 'grid',
+ gridTemplateAreas: `
+ "browser editor preview"
+ "results results results"
+ `,
+ gridTemplateColumns: '1fr 3fr 2fr',
+ gridTemplateRows: '1fr auto',
+ },
+ browser: {
+ gridArea: 'browser',
+ overflow: 'auto',
+ },
+ editor: {
+ gridArea: 'editor',
+ overflow: 'auto',
+ },
+ preview: {
+ gridArea: 'preview',
+ overflow: 'auto',
+ },
+ results: {
+ gridArea: 'results',
+ },
+});
+
+export const TemplateEditor = (props: {
+ directory: TemplateDirectoryAccess;
+ fieldExtensions?: LegacyFieldExtensionOptions