* Rename `homeMachine` and accessories to `projectsMachine` * Separate out `/home` route from `projectsMachine` * Add logic to navigate out from deleted or renamed project * Show a warning in the command palette for deleting a project * Make it navigate when you create a project * Update "New project" button to use command bar flow Closes #2585 * More explicit warning message text * Make projects watching code not run in web * Tests first version: nested loops * Tests second version: flattened * Remove console logs * Fix tsc * @jtran feedback, use the type guard util * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest) * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest) * Fix tests that relied on one-click, no-navigation project creation * Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)" This reverts commit7545b61b49
. * Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)" This reverts commit3d2e48732c
. * Add a mask to the state indicator to client-side scale test * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest) * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * Fix lint * Fix tsc * Add menu item to share link to file * Forward query params while redirecting to /home or /file * Add (broken) event logic and command triggering logic * Fix a couple stray tests that still relied on the old way of creating projects * De-flake another text that could be thrown off by toast-based selectors * FMT * Dumb test error because I was rushing * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * Ahhh more flaky toasts, they're everywhere! * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * Side quest: Only register commands once, power their disabled status while selecting commands via optional actor * Get query-triggered command working in browser too * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest) * Tests always run on localhost, don't expect the prod origin * rerun CI * wip * wip * Everything's pretty much done but url.zoo.dev has been broken and we need to think about how to test reliably * Merge branch 'main' into franknoirot/4088/create-file-url * Add useCreateFileLinkQuery on Home page * Get primary user flow working on desktop * Rework to open browser app first, then send along to the desktop app if asked * Styling updates to OpenInDesktopAppHandler * Clean up unecessary file * Merge branch 'main' into franknoirot/4088/create-file-url * Separate creating `createFileUrl` and shortlink so it is unit testable * Add E2E test for importing file from URL * Add a couple component tests for OpenInDesktopAppHandler * Fix the "existing project" user flow * Add E2E test for "add to existing project" user flow * Undo mistaken or unecessary changes * Lints, fmt, tsc * Fix unit test * Fix broken rename and delete project commands Something about the `optionsFromContext` config no longer works with file I/O-related commands. I suspect this has to do with our read/write loop patching * Fix unit test, use kebab-case for url query param * Use dev urls everywhere when configured that way I think we were just using some constants that ended up returning bad values for dev, it seemed to return a working shortlink when I went through the flow. * Clean up unneeded PROD_TOKEN * Fix browser command flow, because we had made the projectMachine desktop-only on main * Make the test executor a bit more patient (#5004) * Fix so that all artifact commands are returned regardless of caching (#5005) * Fix so that all artifact commands are returned regardless of caching * Add some more docs and fix up old ones * Add new lint to disallow use of confusing isNaN (#4999) * Point-and-click Sweep (first PR) (#4989) * Refactor 'Delete selection' as actor Will fix #4662 * WIP logging * WIP: working Solid3dGetExtrusionFaceInfo for loft * Working wall deletion of loft * Add offset plane deletion * Add feature tree deletion of shell * Clean up * Revert "Clean up" This reverts commit214763cc2b
. * Clean up rust changes, taking the sketch with the most paths * Working cap selection and deletion * Clean up * Add test for loft and offset plane deletion via selection * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-16-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-macos-8-cores) * Set reenter: false as it was originally * Passing test * Add shell deletion via feature tree test * Revert the migration to promise actor * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Trigger CI * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Trigger CI * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Trigger CI * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Trigger CI * Use cmd.id as solid_id after latest engine merge * Add feature tree deletion of offset plane and fix lint * Add feature tree deletion of loft * Clean up * Better comment * Lint fix * Remove sketch sorting * WIP: sweep point-and-click * Working sweep * Add test * Make sweep a development command * Fix tsc error * Clean up for review --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Upgrade typescript-eslint from 5.62.0 to 8.19.1 and remove eslint-config-react-app (#5006) * Fix lost lints and add new ones (#5011) * Add eslint-plugin-jsx-a11y dependency * Add jsx-a11y lint * Add eslint-plugin-react-hooks dependency * Add react hooks lints * Ignore new react hooks lint in tests * Add eslint-plugin-testing-library dependency * Add testing-library lint * Fix yarn lint to use all files recursively * Developer workflow: added auto generated workspace file from vitest extension in vscode (#4997) * chore: added auto generated workspace file from vitest extension in vscode * fix: auto fmt fixes * Change Dependabot PRs to always be made on Mondays (#5025) * Add packages to Dependabot updates (#5024) * Bump @lezer/generator from 1.7.1 to 1.7.2 (#5018) Bumps [@lezer/generator](https://github.com/lezer-parser/generator) from 1.7.1 to 1.7.2. - [Changelog](https://github.com/lezer-parser/generator/blob/main/CHANGELOG.md) - [Commits](https://github.com/lezer-parser/generator/compare/1.7.1...1.7.2) --- updated-dependencies: - dependency-name: "@lezer/generator" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump handlebars from 6.2.0 to 6.3.0 in /src/wasm-lib (#5012) Bumps [handlebars](https://github.com/sunng87/handlebars-rust) from 6.2.0 to 6.3.0. - [Release notes](https://github.com/sunng87/handlebars-rust/releases) - [Changelog](https://github.com/sunng87/handlebars-rust/blob/master/CHANGELOG.md) - [Commits](https://github.com/sunng87/handlebars-rust/compare/v6.2.0...v6.3.0) --- updated-dependencies: - dependency-name: handlebars dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump syn from 2.0.95 to 2.0.96 in /src/wasm-lib (#5015) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.95 to 2.0.96. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.95...2.0.96) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix artifact types to be more accurate (#5022) * Fix Cargo.lock to not have changes (#5034) * Upgrade all wasm-bindgen dependencies together (#5037) * Disable auto-updater on non-versioned builds (#5042) * turns on helix from edge (#5036) * updates for new lib Signed-off-by: Jess Frazelle <github@jessfraz.com> * autocomplete Signed-off-by: Jess Frazelle <github@jessfraz.com> * bump version Signed-off-by: Jess Frazelle <github@jessfraz.com> * bump all the things Signed-off-by: Jess Frazelle <github@jessfraz.com> * new samples Signed-off-by: Jess Frazelle <github@jessfraz.com> * docs Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> * ci: Add yarn test of packages/codemirror-lang-kcl (#5035) * ci: Add yarn test of packages/codemirror-lang-kcl * Fix CI error running tests * Fix postcss config error * Bump xstate from 5.17.4 to 5.19.2 (#5027) * Hook up chamfer UI with AST-mod (#4694) * button * config * hook up with ast * cmd bar test * button states fix and test * little naming fix * xState action to actor * remove button state test updates * fixture-based approach * nightly Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com> * Update src/lib/toolbar.ts Co-authored-by: Frank Noirot <frank@zoo.dev> --------- Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com> Co-authored-by: Frank Noirot <frank@zoo.dev> * Remove Redundant Fillet Button State Test (#5009) delete obsolete test * Bump @types/node from 20.14.9 to 22.10.6 in /packages/codemirror-lsp-client (#5041) * custom axis and origin example for helix (#5057) * custom axis and origin for helix Signed-off-by: Jess Frazelle <github@jessfraz.com> * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * empty --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Bump typescript from 5.7.2 to 5.7.3 (#5021) Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.2 to 5.7.3. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.2...v5.7.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Refactor: break out `copyFileShareLink` into standalone function * Add "Share file" to command palette * Update dumb use of site URL instead of prod app URL * fmt * @lf94 nit * @pierremtb spinner feedback * Hide share link command and disable menu item for now * Just comment out the command config for now --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: 49lf <ircsurfer33@gmail.com> Co-authored-by: Adam Sunderland <iterion@gmail.com> Co-authored-by: Adam Sunderland <adam@kittycad.io> Co-authored-by: Jonathan Tran <jonnytran@gmail.com> Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com> Co-authored-by: Kevin Nadro <nadr0@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> Co-authored-by: max <margorskyi@gmail.com>
335 lines
10 KiB
TypeScript
335 lines
10 KiB
TypeScript
import { assign, fromPromise, setup } from 'xstate'
|
|
import { ProjectsCommandSchema } from 'lib/commandBarConfigs/projectsCommandConfig'
|
|
import { Project } from 'lib/project'
|
|
import { isArray } from 'lib/utils'
|
|
|
|
export const projectsMachine = setup({
|
|
types: {
|
|
context: {} as {
|
|
projects: Project[]
|
|
defaultProjectName: string
|
|
defaultDirectory: string
|
|
},
|
|
events: {} as
|
|
| { type: 'Read projects'; data: {} }
|
|
| { type: 'Open project'; data: ProjectsCommandSchema['Open project'] }
|
|
| {
|
|
type: 'Rename project'
|
|
data: ProjectsCommandSchema['Rename project']
|
|
}
|
|
| {
|
|
type: 'Create project'
|
|
data: ProjectsCommandSchema['Create project']
|
|
}
|
|
| {
|
|
type: 'Delete project'
|
|
data: ProjectsCommandSchema['Delete project']
|
|
}
|
|
| {
|
|
type: 'Import file from URL'
|
|
data: ProjectsCommandSchema['Import file from URL']
|
|
}
|
|
| { type: 'navigate'; data: { name: string } }
|
|
| {
|
|
type: 'xstate.done.actor.read-projects'
|
|
output: Project[]
|
|
}
|
|
| {
|
|
type: 'xstate.done.actor.delete-project'
|
|
output: { message: string; name: string }
|
|
}
|
|
| {
|
|
type: 'xstate.done.actor.create-project'
|
|
output: { message: string; name: string }
|
|
}
|
|
| {
|
|
type: 'xstate.done.actor.rename-project'
|
|
output: { message: string; oldName: string; newName: string }
|
|
}
|
|
| {
|
|
type: 'xstate.done.actor.create-file'
|
|
output: { message: string; projectName: string; fileName: string }
|
|
}
|
|
| { type: 'assign'; data: { [key: string]: any } },
|
|
input: {} as {
|
|
projects: Project[]
|
|
defaultProjectName: string
|
|
defaultDirectory: string
|
|
},
|
|
},
|
|
actions: {
|
|
setProjects: assign({
|
|
projects: ({ context, event }) =>
|
|
'output' in event && isArray(event.output)
|
|
? event.output
|
|
: context.projects,
|
|
}),
|
|
toastSuccess: () => {},
|
|
toastError: () => {},
|
|
navigateToProject: () => {},
|
|
navigateToProjectIfNeeded: () => {},
|
|
navigateToFile: () => {},
|
|
},
|
|
actors: {
|
|
readProjects: fromPromise(() => Promise.resolve([] as Project[])),
|
|
createProject: fromPromise(
|
|
(_: { input: { name: string; projects: Project[] } }) =>
|
|
Promise.resolve({ message: '' })
|
|
),
|
|
renameProject: fromPromise(
|
|
(_: {
|
|
input: {
|
|
oldName: string
|
|
newName: string
|
|
defaultProjectName: string
|
|
defaultDirectory: string
|
|
projects: Project[]
|
|
}
|
|
}) =>
|
|
Promise.resolve({
|
|
message: '',
|
|
oldName: '',
|
|
newName: '',
|
|
})
|
|
),
|
|
deleteProject: fromPromise(
|
|
(_: { input: { defaultDirectory: string; name: string } }) =>
|
|
Promise.resolve({
|
|
message: '',
|
|
name: '',
|
|
})
|
|
),
|
|
createFile: fromPromise(
|
|
(_: {
|
|
input: ProjectsCommandSchema['Import file from URL'] & {
|
|
projects: Project[]
|
|
}
|
|
}) => Promise.resolve({ message: '', projectName: '', fileName: '' })
|
|
),
|
|
},
|
|
guards: {
|
|
'Has at least 1 project': ({ event }) => {
|
|
if (event.type !== 'xstate.done.actor.read-projects') return false
|
|
return event.output.length ? event.output.length >= 1 : false
|
|
},
|
|
},
|
|
}).createMachine({
|
|
/** @xstate-layout N4IgpgJg5mDOIC5QAkD2BbMACdBDAxgBYCWAdmAMS6yzFSkDaADALqKgAOqtALsaqXYgAHogAsAJgA0IAJ6IAjAHYAbADoArBJVMFTCQA4mTAMwmxAXwsy0mHARLkKASXRcATjywAzYgBtsb3cMLABVACUAGWY2JBAuXn5BONEESRl5BAUFFQM1HQUxJSYATmyFAyUTKxsMbDwiMjA1ZGosUlQsDmCAKzB8HlgKcLBcCC7e-sGYoQTiPgEhVIUy9SKSiQ0NEwkclRyMxGKJNRKlMRVDU23zpRqQW3qHJpa2jonUPoGhgGF3UZ42G6nymMzicwWyVAyzKJzECg0OiYGjERhK+kOWUMSlOGiUlTEJlMxRKBnuj3sjXIr1gHy+g2Go3GwPpsDBnG48ySS0QGj0+Q0JTOGkqBg2JhKmNRJy2OyUEn0Kml5LqlMczVatJZUyGI1IuDs2oG7PinMhPIQfKYAqFShF+PFkrkRwkYjU8OUShKKhMKg0pUs1geqoa6ppdJ1FD+AKBk2NrFmZu5KV5-L9tvtYokEsxelRagUCoMiMumyUdpVdlDL01Ee+FAAImAAoC6zwTRDk9DU9b08LRY7MWd1AZcoS-aoLiYFJWnlSNW0jQyAPIcMCkNsdpOLFOWtOC-sO7NOzLbGWFbY6acmFESWdql7R3B8UhQNsUCACZpkABuqAA1s0+D-M+YAALRLluiQ7t2WRMGIbryjeBgGBIEglNsCi5sY6hMOchQqEoCLFCh97VtST4vm+S4UGA7jBO4agcH4z7eKg7joGowExhBcbtgm4LblCIiKPBiHZiKqHoZhuaFhoBbGMYBhiPBCgStUQYUuRzR6gaZDUXxH5fmov4Ac0-z6pgvEgvGsQctBwnLGJahIZJaEYdOmKEfJuQSoRRKSRcZHPNSunoPp750QxTEsTwbEcWoFkGuBkECfZXIwSJcEIS5Ekoe5MnOggXqIaUqFiiUhIInemkhiFzRNi2EU0Z+1KmYBagQM2YCAtZ9JQRljmiTlrn5dJnlFShOLwcpZjKBs+KBrUVb1WojU9c1hlRexMWsexnFdS2KV8QN5q7laNqHlmOaTcpmjoWc8L6HoYrBfOagjGMm02QyrXfqQf4dSBEB9Tqp1dllebichUkeVhRXTiU+QecUKhCps4pvWGn0QN9rJGW1ANmYlTKg98DAKHZpoORanoyqh8oImU3pKJifJ5Ohdr7CYqjIvKWMvDjeORttjHMXtCXA2T0xpdTg20+W9MSIzgorIRXlpr6ORbPs+jwQLFEgVRPj+JQf0mUTHXcaBYG+AE4OZcsxbuts5hbCK+zFmImJgSc5zPV6BQVD6RQG80lERXblCi7tcX7VxRvgVHDtDQgaE4vK2gXKiTA6ItubmJo8IoqOylERUVhBh0XXwHEWn1YmNO7mBKg+2KpzK2IpIBUwBhqUtwYre9tbvEutfpWdsFFnkPpVJnQqz15Ozur36FoypREbGH4Zj438u7tO1qIu5qK5PBGyYjebpEkS44e9oVTbxHr5tnvk9ZeXajTuW+zaHNuzYRUmoeCEp-RKlUHJbeYVhYDDfhDVIxR5IGGnISQk6E+6EkxMUBQX9c66EMMg3Q5Zt7rWNkuOBjsjilDUAqQsZQzzgOkJNUk7o7SmF-tiXOUCmQwMGBQ1OF4TgVGzFUG8yIxQGDZiYPI4oqh+mPsrDSy05xhmfm+KO-CLT+iRucEUuwFQqWzMWXM2YTAuTtL6ZBylkRcMrkAA */
|
|
id: 'Home machine',
|
|
|
|
initial: 'Reading projects',
|
|
|
|
context: ({ input }) => ({
|
|
...input,
|
|
}),
|
|
|
|
on: {
|
|
assign: {
|
|
actions: assign(({ event }) => ({
|
|
...event.data,
|
|
})),
|
|
target: '.Reading projects',
|
|
},
|
|
|
|
'Import file from URL': '.Creating file',
|
|
},
|
|
states: {
|
|
'Has no projects': {
|
|
on: {
|
|
'Read projects': {
|
|
target: 'Reading projects',
|
|
},
|
|
'Create project': {
|
|
target: 'Creating project',
|
|
},
|
|
},
|
|
},
|
|
|
|
'Has projects': {
|
|
on: {
|
|
'Read projects': {
|
|
target: 'Reading projects',
|
|
},
|
|
|
|
'Rename project': {
|
|
target: 'Renaming project',
|
|
},
|
|
|
|
'Create project': {
|
|
target: 'Creating project',
|
|
},
|
|
|
|
'Delete project': {
|
|
target: 'Deleting project',
|
|
},
|
|
|
|
'Open project': {
|
|
target: 'Reading projects',
|
|
actions: 'navigateToProject',
|
|
reenter: true,
|
|
},
|
|
},
|
|
},
|
|
|
|
'Creating project': {
|
|
invoke: {
|
|
id: 'create-project',
|
|
src: 'createProject',
|
|
input: ({ event, context }) => {
|
|
if (
|
|
event.type !== 'Create project' &&
|
|
event.type !== 'Import file from URL'
|
|
) {
|
|
return {
|
|
name: '',
|
|
projects: context.projects,
|
|
}
|
|
}
|
|
return {
|
|
name: event.data.name,
|
|
projects: context.projects,
|
|
}
|
|
},
|
|
onDone: [
|
|
{
|
|
target: 'Reading projects',
|
|
actions: ['toastSuccess', 'navigateToProject'],
|
|
},
|
|
],
|
|
onError: [
|
|
{
|
|
target: 'Reading projects',
|
|
actions: ['toastError'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
'Renaming project': {
|
|
invoke: {
|
|
id: 'rename-project',
|
|
src: 'renameProject',
|
|
input: ({ event, context }) => {
|
|
if (event.type !== 'Rename project') {
|
|
// This is to make TS happy
|
|
return {
|
|
defaultProjectName: context.defaultProjectName,
|
|
defaultDirectory: context.defaultDirectory,
|
|
oldName: '',
|
|
newName: '',
|
|
projects: context.projects,
|
|
}
|
|
}
|
|
return {
|
|
defaultProjectName: context.defaultProjectName,
|
|
defaultDirectory: context.defaultDirectory,
|
|
oldName: event.data.oldName,
|
|
newName: event.data.newName,
|
|
projects: context.projects,
|
|
}
|
|
},
|
|
onDone: [
|
|
{
|
|
target: '#Home machine.Reading projects',
|
|
actions: ['toastSuccess', 'navigateToProjectIfNeeded'],
|
|
},
|
|
],
|
|
onError: [
|
|
{
|
|
target: '#Home machine.Reading projects',
|
|
actions: ['toastError'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
'Deleting project': {
|
|
invoke: {
|
|
id: 'delete-project',
|
|
src: 'deleteProject',
|
|
input: ({ event, context }) => {
|
|
if (event.type !== 'Delete project') {
|
|
// This is to make TS happy
|
|
return {
|
|
defaultDirectory: context.defaultDirectory,
|
|
name: '',
|
|
}
|
|
}
|
|
return {
|
|
defaultDirectory: context.defaultDirectory,
|
|
name: event.data.name,
|
|
}
|
|
},
|
|
onDone: [
|
|
{
|
|
actions: ['toastSuccess', 'navigateToProjectIfNeeded'],
|
|
target: '#Home machine.Reading projects',
|
|
},
|
|
],
|
|
onError: {
|
|
actions: ['toastError'],
|
|
target: '#Home machine.Has projects',
|
|
},
|
|
},
|
|
},
|
|
|
|
'Reading projects': {
|
|
invoke: {
|
|
id: 'read-projects',
|
|
src: 'readProjects',
|
|
onDone: [
|
|
{
|
|
guard: 'Has at least 1 project',
|
|
target: 'Has projects',
|
|
actions: ['setProjects'],
|
|
},
|
|
{
|
|
target: 'Has no projects',
|
|
actions: ['setProjects'],
|
|
},
|
|
],
|
|
onError: [
|
|
{
|
|
target: 'Has no projects',
|
|
actions: ['toastError'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
'Creating file': {
|
|
invoke: {
|
|
id: 'create-file',
|
|
src: 'createFile',
|
|
input: ({ event, context }) => {
|
|
if (event.type !== 'Import file from URL') {
|
|
return {
|
|
code: '',
|
|
name: '',
|
|
units: 'mm',
|
|
method: 'existingProject',
|
|
projects: context.projects,
|
|
}
|
|
}
|
|
return {
|
|
code: event.data.code || '',
|
|
name: event.data.name,
|
|
units: event.data.units,
|
|
method: event.data.method,
|
|
projectName: event.data.projectName,
|
|
projects: context.projects,
|
|
}
|
|
},
|
|
onDone: {
|
|
target: 'Reading projects',
|
|
actions: ['navigateToFile', 'toastSuccess'],
|
|
},
|
|
onError: {
|
|
target: 'Reading projects',
|
|
actions: 'toastError',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
})
|