metadata-editor
This library was generated with @box/automation. General overview on how to perform tasks on the generated library can be found in run-tasks Nx documentation.
Running commands
Your terminal should stay in location of root directory of repository, which is frontend-mono. That Allows Nx to run action against your project, or multiple project if that is necessary.
Do not navigate to packages/group-shared-features/metadata-editor to run commands.
Commands for the project are run using syntax used by Nx:
Syntax: yarn nx <target name> <project name> <option overrides>
| | |
Example: yarn nx test products --watch
Available commands
All commands used with Nx can be found in project.json file within your package.
nx storybook metadata-editor- launches development environment for UI component.nx build-storybook metadata-editor- build static version of storybook with all stories.nx build metadata-editor- build package usingshared-feature-builderexecutor fromautomationpackage.nx lint metadata-editor- runs linter over package files.nx test metadata-editor- runs storybook tests (visual/interactions) and jest unit tests, producing coverage report at the end.nx test-storybook metadata-editor- runs storybook tests. You need first to start storybook in separate terminal for this to work.nx test-storybook-local-coverage metadata-editor- runs storybook tests, and produces coverage report at the end. Requires running instance of storybook.nx test-storybook-ci metadata-editor- build storybook and run storybook tests with coverage output. Designed for CI usage.nx test-jest metadata-editor- runs jest unit tests, producing code coverage at the end.nx sonar metadata-editor- performs static analysis of code using SonarQube tooling, to detect bugs and code smells. Integrated as one of the steps in CI process.nx chromatic metadata-editor- uploads storybook build for review to box chromatic , and performs visual comparison of the UI changes against baseline.nx prepare metadata-editor- command run during package publication process orchestrated by Nx Release.
Ownership
Code of the feature belongs to @Box/role_metadata. Responsibilities of owning team include control over code quality, providing guidelines for changes, and alignment with other teams regarding changes.
If you have any questions or needs related to this feature, please reach out to the Metadata team on Slack: #eng-metadata-team
Item type
itemType selects item-specific copy. Autofill, confidence score review, and bounding boxes stay on their own flags and are supported for files only, so folder hosts should leave those flags off.
folder also shows the cascade policy editor. When the user may edit that policy, onSubmit receives cascadePolicySelection (id, isEnabled, overwrite, canEdit, and the applied AI extract settings). File saves omit that argument. A policy with canEdit: false is shown as a read-only notice and is left out of save.
MetadataInstanceForm accepts an optional itemType of 'file' | 'folder'. It defaults to 'file' and is passed through to DeleteConfirmationModal. MetadataInstanceList does not take itemType; the list shows its own cascade notice when a folder instance already has a policy.
Folder empty-state copy is a separate prop. Pass level="folder" on MetadataEmptyState together with itemType="folder" on the form, so the delete modal and the empty state describe the same item.
import { MetadataEmptyState, MetadataInstanceForm } from '@box/metadata-editor';
<MetadataInstanceForm itemType="folder" {...formProps} />
<MetadataEmptyState level="folder" />
Translations
Per-locale i18n/*.js files are generated and committed by the Moji Jenkins pipeline. The shared-feature builder copies them into dist/i18n/ during build. Consuming applications list this package in i18n.config.js under translationDependencies.