-
Notifications
You must be signed in to change notification settings - Fork 7
Packages
- Mission
-
Organization
- @piximi/components
- @piximi/evaluate-classifier-dialog
- @piximi/fit-classifier-dialog
- @piximi/gallery-dialog
- @piximi/help-dialog
- @piximi/hooks
- @piximi/image-viewer-dialog
- @piximi/models
- @piximi/navigation-drawer
- @piximi/open-example-classifier-dialog
- @piximi/send-feedback-dialog
- @piximi/settings-dialog
- @piximi/store
- @piximi/theme
- @piximi/translations
- @piximi/types
- @piximi/upload-image-dialog
- piximi
- Creating a new package
The aim of Piximi’s multi-package organization is three-fold:
- maintain a DRY codebase;
- ensure generic interfaces between features; and
- simplify the bootstrapping process for new contributors.
If you find yourself duplicating code, it’s time to create a new package. Packages like @piximi/components
, @piximi/store
, and @piximi/types
exemplify this habit. @piximi/store
, for example, includes Redux actions for creating, updating, and deleting images that are used by multiple packages. Because each of these packages use the same @piximi/store
actions, we can ensure the behavior between packages is consistent.
This repository includes both the Piximi web app (packages/piximi
) and the handful of discrete @piximi sub-packages (packages/@piximi/*
) written concurrently or alongside the web app. The packages included in the packages directory are versioned together and simultaneously published to the NPM package repository.
Generic React components
Piximi’s EvaluateClassifierDialog
component
Piximi’s FitClassifierDialog
component
Piximi’s GalleryDialog
component
Piximi’s HelpDialog
component
Generic React hooks
Piximi’s ImageViewerDialog
component
Piximi’s TensorFlow.js models
Piximi’s NavigationDrawer
component
Piximi’s OpenExampleClassifierDialog
component
Piximi’s SendFeedbackDialog
component
Piximi’s SettingsDialog
component
Piximi’s Redux actions, reducers, selectors, and stores
Piximi’s Material UI theme
Piximi’s translations
Piximi’s generic TypeScript definitions
Piximi’s UploadImageDialog
component
Piximi web app
Packages with React components should include a storybook
command and a .storybook
directory with an appropriate Storybook configuration.
Most packages will only have one story that corresponds to the package’s one exported component. For example, image-viewer-dialog
has one story for the ImageViewerDialog
component. Likewise, fit-classifier-dialog
has one story for the FitClassifierDialog
component. A noteworthy exception are packages that export more than one component, e.g. @piximi/components
has a story for each of its exported components.