No description
Find a file
Magdalena Markusik aaa0a9f309
Feature - Gift Cards (#1366)
* Add deletion to gift cards (#1298)

* Add gift cards section to menu and add empty list component

* Update messages

* Change styling of app wide page header to match design

* Add gift cards list table wip

* Update prop name for status chip component to make it more consistent with other components

* Replace old trash icon with new one

* Add Size type based on action dialog sizes to be used app wide

* Add delete icon button

* Add new sizes option to status chip component

* Add / update gift cards list components

* Add bulk actions type

* Work on gift cards list WIP

* Small refactor

* Fix styling of gift cards table

* Remove temp files

* Remove unnecessary type

* Add gift cards section to menu and add empty list component

* Update schema and types

* Add link to gift card update page to gift cards list and add route to gift cards index

* Extract order page title with status chip into a separate generic component and use it in order page title

* wip

* Update money component

* Add gift card details card balance section

* Refactor gift card details

* Add vertical spacer component

* Update schema and types

* Add gift card tag input component along with necessary queries

* Add gift card tag input to gift card update page

* Add gift card update details card expiry section WIP

* Add time period select field WIP

* Post rebase refactor

* Add time period select field to gift card update view

* Update schema, types and gift cards query

* Add getFullName util function and replace existing manual usages

* Add text with select field component

* Add gift card update info card and refactor

* Fixes after review

* Fix import

* Add displaying order link in gift card update

* Refactor

* Connect gift card list to api

* refactor

* Add gift card create dialog

* Fix gift card list styles, change location for gift card list query, minor refactor

* Fix menu structure data for gift cards

* Add channel currencies type to shop

* Refactor text with select field

* Add gift card expiry select component

* Add gift card error type and fragment

* Update global types

* Add default prop to getFormErrors function

* Move gift card details provider to providers dir

* Update global utils with mapSingleValueNodeToChoice function

* Update gift card tag input

* Move and refactor time period field

* Update schema

* move format money function to other money ulities

* Update gift card urls

* Add content or skeleton component

* Add gift card create util for extracting expiry settings input data

* Remove content or skeleton component and move displaying logic to existing skeleton

* Move displaying logic of gift card create dialog to list

* Refactor

* Add hooks for gift card bulk actions and gift card list to be used instead of context directly

* Fix types for text with select field + add parsing for number typed field

* Add initial currency to gift card create form

* Fix gift card create dialog closing animation

* Add gift card update info card

* Refactor gift card update details card

* Add gift card balance dialog

* Move gift card update form providers to providers dir

* Connect gift card update page to api, add necessary contexts etc.

* Refactor

* Refactor

* Add hooks to use instead of gift card contexts directly

* Fix types

* Fix text field target name missing in passed event in text with select field

* Add minimal value option to text with select field, add to gift card inputs

* Fix gift card update balance dialog not changing hasChanged prop after submit

* Refactor

* Add enable / disable section to gift card update

* Refactor

* Refactor

* Fix update balance dialog crashing the app when enetered wrong amount

* Fix gift card list table header styles

* Refactor

* Add metadata to gift card update

* Update messages ids

* Refactor

* Refactor

* Refactor

* Refactor

* Update schema and types, add gift card delete and bulk delete mutations

* Fix url change after gift card delete

* Refactor

* Update messages

* Change gift card list providers order

* Refactor/fix after merge

* Add gift card resend mutation and update types

* Add use dialog form reset hook and make update balance dialog use it, to fix it displaying form errors after modal close and open

* Add gift card resend code dialog

* Add button to open gift card resend code dialog

* Update messages

* Add gift card list bulk enable disable section

* Add refetching gift card list query after bulk activate / deactivate, refactor

* Refactor

* Refactor

* Update messages

* Update schema

* Change gift card update expiry settings

* Refactor

* Add gift card settings view (#1300)

* Add gift card settings view

* Refactor

* Create gift card sttings expiry select

* Update test snapshots

* Update schema

* Update gift card settings page title

* Refactor to match rest of the gift cards flow (#1308)

Co-authored-by: Magdalena Markusik <magdalena.markusik@mirumee.com>

* Refactor

* Refactor

* Set common error codes in string union

Co-authored-by: Magdalena Markusik <magdalena.markusik@mirumee.com>

* Add gift card kind to product type (#1307)

* Add gift card kind to product type

* Fix radio label alignment

* Update test snapshots

* Refactor

* Set default kind in product type create

* Change styling of activate / deactivate button in gift card update

* Add week option to time period select field

* Update messages

* Change labels and update messages

* Add auto fulfill non shippable gift cards to order settings

* Fix fixture

* Update messages

* Update snapshots

* Refactor

* Update types

* Add gift card used in order money amount in order payment section

* Remove unnecessary schema changes

* Change types

* Update fixtures and messages

* Refactor

* Add top card to gift card list (#1327)

* Add top card to gift card  list

* Update no gift card products notification messages

* Use alert instead of notification

* Update prodduct and product  type counts

* Return null if none of the conditions pass

* Update messages

* Fix unused product type deletion

* Update types

* Update imports

* Update messages

* Update test snapshots

* Change gift card dialog expiry settings

* Update form of create gift card dialog

* Add activation option to create gift card dialog

* Update event handling

* Update test snapshots

* Use date context provider for moment time

* Update types

* Refactor

* Update messages

* Update snapshots

* Add channel picker to gift card create modal

* Fix styling

* Add channel picker to gift card resend code dialog

* Update schema and types

* Refactor

* Update messages

* Refactor

* Update messages and snapshots

* Fix order gift card money amount (#1371)

* Update messages and snapshots

* Fix order gift card money in payment card when multiple gift cards used

* Fix missing order id check in gift card events in order gift card money used util

* Fix channel selection in gift card create dialog

* Fix order number not showing in gift card update view

* Add gift card settings to gift card create dialog (#1372)

* Fix gift cards number inputs to accept floats

* Fix order number showing as null in gift card update info card

* Fix channel slug adding in gift card create dialog

* Fix gift card list header top card links to display correctly

* Remove unused imports

Co-authored-by: Dawid Tarasiuk <tarasiukdawid@gmail.com>
2021-09-14 15:57:02 +02:00
.circleci Bump node version 2020-06-08 17:00:39 +02:00
.github Target only security updates (#1400) 2021-09-14 15:32:41 +02:00
.tx Use json files in translations 2020-02-13 12:54:23 +01:00
assets replaced logo with new version 2021-06-11 13:54:21 +02:00
cypress Saleor 4033 tests for plugins (#1317) 2021-09-10 11:03:42 +02:00
lint/rules Add rule fixer 2019-12-03 16:23:42 +01:00
locale Feature - Gift Cards (#1366) 2021-09-14 15:57:02 +02:00
nginx fixing 404 2019-11-04 02:21:48 +07:00
recordings/User_3768991250 Drop deprecated fields (#1071) 2021-04-26 09:49:55 +02:00
scripts Store in snapshot LOCs that errored 2020-02-26 13:57:04 +01:00
src Feature - Gift Cards (#1366) 2021-09-14 15:57:02 +02:00
testUtils Add dashboard extensions (#1292) 2021-08-20 15:58:53 +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 Reduce bundle size (#1103) 2021-05-14 10:15:15 +02:00
.gitignore Saleor 2893 fix failing cypress tests (#1064) 2021-04-16 13:36:24 +02:00
.npmrc Initial commit 2019-06-19 16:40:52 +02:00
.prettierignore Do not format type files 2019-11-21 18:46:28 +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 Refunds (#870) 2020-12-01 14:13:05 +01:00
CHANGELOG.md Click & Collect (#1268) 2021-08-27 10:10:41 +02:00
codegen.yml Click & Collect (#1268) 2021-08-27 10:10:41 +02:00
cypress.json Saleor 2962 warehouses in checkout (#1118) 2021-06-01 10:18:45 +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
fragmentTypes.json Click & Collect (#1268) 2021-08-27 10:10:41 +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 Saleor 4033 tests for plugins (#1317) 2021-09-10 11:03:42 +02:00
package.json Saleor 4033 tests for plugins (#1317) 2021-09-10 11:03:42 +02:00
react-intl.d.ts Attach permission variables to all queries (#1000) 2021-03-09 09:44:09 +01:00
README.md Define node requirements, ts cleanup (#1008) 2021-03-19 13:06:17 +01:00
schema.graphql Feature - Gift Cards (#1366) 2021-09-14 15:57:02 +02:00
static.json Configure Heroku integration 2019-09-22 14:30:10 +02:00
tsconfig.json Add test utils 2020-01-20 16:46:54 +01:00
webpack.config.js App adjustments (#1385) 2021-09-13 16:14:04 +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/mirumee/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/mirumee/saleor-dashboard/releases/

Using development version

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

$ git checkout master

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 Mirumee Software