No description
Find a file
Dominik Żegleń 7d9441a7ec
Use esbuild-loader (#1983)
* Minor fixes for intl messages

* Add esbuild-loader
* switch from babel to esbuild-loader
* use formatjs enforce-id linter

* Generate ids for intl messages

* id format defined by idInterpolationPattern

* Modify intl messages extraction

* remove react-intl-translations-manager
* remove transpile-tx.js
* use formatjs cli

* Modify defaultMessages.json

* modify ids in defaultMessages.json with defined idInterpolationPattern

* Fix errors

* Fix page crash

* Use babel to transpile tests

* Fix useStateFromProps

* Improve render count

* Add test to useStateFromProps

* Fix reloading state buh

* Do not check if form with channels is dirty

* Stop blocking save if form has not changed

* Remove debug code

* Fix form disabling

* Fix variant selection checkbox onClick

* Update translations

* Update messages

* Use esbuild to build storybook

Co-authored-by: Bartłomiej Wiaduch <tukan2can@gmail.com>
Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
2022-05-05 09:54:28 +02:00
.circleci Bump node version 2020-06-08 17:00:39 +02:00
.github Fix nightly tests (#2028) 2022-04-29 13:53:21 +02:00
.tx Update translations (#1965) 2022-04-05 09:33:48 +02:00
assets Bump macaw to 0.3 (#1807) 2022-01-28 13:34:20 +01:00
cypress Saleor 6757 xit for failing tests (#2030) 2022-05-04 10:42:52 +02:00
lint/rules Add rule fixer 2019-12-03 16:23:42 +01:00
locale Use esbuild-loader (#1983) 2022-05-05 09:54:28 +02:00
nginx fixing 404 2019-11-04 02:21:48 +07:00
recordings/User_3768991250 Don't fetch user details on login (#1909) 2022-03-23 08:15:05 +01:00
scripts Use esbuild-loader (#1983) 2022-05-05 09:54:28 +02:00
src Use esbuild-loader (#1983) 2022-05-05 09:54:28 +02:00
testUtils Use esbuild-loader (#1983) 2022-05-05 09:54:28 +02:00
.codeclimate.yml Initial commit 2019-06-19 16:40:52 +02:00
.dockerignore add .dockerignore and fixing nginx conf for local deploy 2019-10-31 14:31:13 +07:00
.eslintrc.json Use esbuild-loader (#1983) 2022-05-05 09:54:28 +02:00
.gitignore Add reports to tests (#1898) 2022-03-03 11:25:27 +01:00
.npmrc Initial commit 2019-06-19 16:40:52 +02:00
.prettierignore Use graphql-codegen (#1874) 2022-03-09 09:56:55 +01:00
.prettierrc Add prettierrc config 2020-07-03 15:17:36 +02:00
.release-it.json Add release-it script (#1034) 2021-03-30 14:37:12 +02:00
_redirects Enable Netlify redirects 2019-11-14 13:01:45 +01:00
apollo.config.js Update apollo config 2019-08-21 15:26:24 +02:00
app.json Configure Heroku integration 2019-09-22 14:30:10 +02:00
babel.config.js Use esbuild-loader (#1983) 2022-05-05 09:54:28 +02:00
CHANGELOG.md Disable query batching (#1922) 2022-03-17 16:00:17 +01:00
codegen.yml Use graphql-codegen (#1874) 2022-03-09 09:56:55 +01:00
cypress.json Cypress configuration (#1973) 2022-04-05 11:11:05 +02:00
Dockerfile Define node requirements, ts cleanup (#1008) 2021-03-19 13:06:17 +01:00
Dockerfile.dev Define node requirements, ts cleanup (#1008) 2021-03-19 13:06:17 +01:00
eslint-local-rules.js Add local eslint rule to enforce naming styles 2019-12-03 16:09:57 +01:00
fetch-schema.yml Use graphql-codegen (#1874) 2022-03-09 09:56:55 +01:00
introspection.json Allow all attributes to appear in grid in PLP (#1933) 2022-04-28 10:43:05 +02:00
LICENSE Update LICENSE 2021-06-28 15:57:24 +02:00
lighthouserc.json Add circleci config and enhance our linters (#519) 2020-05-14 11:30:32 +02:00
lws.config.js merge changes 2021-02-11 15:17:00 +01:00
package-lock.json Use esbuild-loader (#1983) 2022-05-05 09:54:28 +02:00
package.json Use esbuild-loader (#1983) 2022-05-05 09:54:28 +02:00
react-intl.d.ts Attach permission variables to all queries (#1000) 2021-03-09 09:44:09 +01:00
README.md Update organization name (#1484) 2021-10-11 09:53:22 +03:00
schema.graphql Allow all attributes to appear in grid in PLP (#1933) 2022-04-28 10:43:05 +02:00
static.json Configure Heroku integration 2019-09-22 14:30:10 +02:00
tsconfig.json Saleor 4437 refactor tests (#1389) 2021-09-27 12:04:21 +02:00
webpack.config.js Use esbuild-loader (#1983) 2022-05-05 09:54:28 +02:00
webpack.d.ts Add PasswordCredential type (#868) 2020-11-30 11:26:51 +01:00

Saleor Dashboard

Saleor Dashboard

A GraphQL-powered, single-page dashboard application for Saleor.

Demo

See the public demo of Saleor Dashboard!

Or launch the demo on a free Heroku instance.

Deploy

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Node.js v14+
  • A running instance of Saleor.

Installing

Clone the repository:

$ git clone https://github.com/saleor/saleor-dashboard.git

Enter the project directory:

$ cd saleor-dashboard

Using stable release

To use the official stable release, checkout to a release tag:

$ git checkout 2.11.1

See the list of all releases here: https://github.com/saleor/saleor-dashboard/releases/

Using development version

If you want to use the latest development version, checkout to the main branch:

$ git checkout main

Install NPM dependencies:

$ npm i

Configuration

There following environment variables are available for configuration:

  • API_URI (required) - URI of a running instance of Saleor GraphQL API. If you are running Saleor locally with the default settings, set API_URI to: http://localhost:8000/graphql/.

  • APP_MOUNT_URI - URI at which the Dashboard app will be mounted. E.g. if you set APP_MOUNT_URI to /dashboard/, your app will be mounted at http://localhost:9000/dashboard/.

  • STATIC_URL - URL where the static files are located. E.g. if you use S3 bucket, you should set it to the bucket's URL. By default Saleor assumes you serve static files from the root of your site at http://localhost:9000/.

Development

To start the development server run:

$ npm start

Production

To build the application bundle run:

$ npm run build

Error Tracking

Saleor Dashboard is using a generic error tracking wrapper function that takes care of the most popular use cases:

  • initializing the tracker
  • capturing exceptions and (optionally) displaying the event id
  • setting basic user data (this is opt-in and disabled by default)

By default it ships with a Sentry adapter but any kind of error tracking software can be used by creating a custom adapter (using Sentry and TS types as an example).

Example:

// src/services/errorTracking/index.ts

import { CustomAdapter } from "./adapters/";

const errorTracker = ErrorTrackerFactory(CustomAdapter(config));
Usage with Sentry adapter:

Sentry is used as the default tracker so no changes in code are necessary and the configuration is done via environment variables.

The following environment variables are available:

# Required
SENTRY_DSN=

# Optional
# https://docs.sentry.io/product/cli/configuration/
SENTRY_AUTH_TOKEN=
SENTRY_ORG=
SENTRY_PROJECT=
SENTRY_URL_PREFIX=
ENVIRONMENT=

Crafted with ❤️ by Saleor Commerce