This addon contains core features used by Boundary UIs, such as i18n and helpers.
- Add core to an App
- Installation
- I18n
- Notifications
- Confirmations
- App and Company Names
- Documentation URLs
- Loading Helper
- Scope Service
- Yarn Commands
- Linting
- Formatting
- Running tests
- Running the dummy application
- Contributing
Add this addon to an Ember application's devDependencies
as:
"core": "*"
, for applications included in this monorepo.
See monorepo README for installation instructions.
To access translations within a template, see ember-intl
docs.
Use notificaiton decorators to notify the user when a function or action succeeds or fails. For example:
import { notifySuccess, notifyError } from 'core/decorators/notify';
export default class ExampleRoute extends Route {
@notifyError(({ message }) => message, { catch: true })
@notifySuccess('notifications.delete-success')
async myAction() {
// do something
}
}
This addon exposes a service to request confirmations and the component used to expose them to users. A decorator is exposed for convenience.
To guard an action on a confirmation, decorate it with @confirm
. In this
example, the confirmation looks up the translation under a
questions.delete-confirm
key.
import { confirm } from 'core/decorators/confirm';
export default class ExampleRoute extends Route {
@confirm('questions.delete-confirm')
async myAction() {
// do something
}
}
In the application template, iterate over confirmations, yielding the confirmation instance as well as accept and deny functions which, when called, update the confirmation status.
<PendingConfirmations as |confirmation accept deny|>
{{!-- your confirmation dialog component here --}}
</PendingConfirmations
To make use of the app-name
, company-name
, and company-copyright
helpers,
add appName
an companyName
keys to your Ember config
(see admin for example).
To render doc links in your application, be sure to configure the links in your Ember config (see admin). Then reference doc links by keys:
<DocLink @doc="account" @iconSize="large" />
See admin and desktop routes and templates for examples of how to use the loading subsystem. For example, to annotate that an async action should present a loading indicator to a user:
@action
@loading
async myAction() {
// ...do potentially time-consuming task
}
This addon exposes a service to hold all active scopes (org and project where available).
To make use of the service, import it and initialize it using service injection.
import { service } from '@ember/service';
export default class ExampleRoute extends Route {
@service scope;
async myAction() {
// do something
}
}
List of available project commands. yarn run <command-name>
Command | Description |
---|---|
build:development | Builds the dummy app in development mode. |
build | Builds the dummy app for production. |
lint | Runs all lint commands. |
lint:js | Lints js files. |
lint:js:fix | Runs automatic lint fixes for js files. |
lint:hbs | Runs lint for hbs template files. |
lint:hbs:fix | Runs automatic lint fixes for hbs template files. |
format | Runs all auto-formatters. |
format:js | Auto-formats js files using Prettier. |
format:hbs | Auto-formats hbs files using Prettier. |
start | Runs the dummy app local server. |
test | Runs all tests. |
test:ember-compatibility | Runs tests across multiple Ember versions with ember-try. |
precommit | Runs all lint, format and tests. |
doc:toc | Automatically generates a table of contents for this README file. |
Additional commands in the monorepo package may affect this projects.
yarn lint:hbs
yarn lint:hbs --fix
yarn lint:js
yarn lint:js --fix
Before submitting your work, be sure to run auto-formatters (see commands above). This helps to ensure consistency among authors.
yarn format
yarn test
β Runs the test suite on the current Ember versionyarn test --server
β Runs the test suite in "watch mode"yarn test:all
β Runs the test suite against multiple Ember versions
yarn start
- Visit the dummy application at http://localhost:4200.
See monorepo README for more contribution instructions.
To autogenerate a ToC (table of contents) for this README,
run yarn doc:toc
. Please update the ToC whenever editing the structure
of README.