Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shopper promotions hooks #759

Merged
merged 9 commits into from
Oct 13, 2022
Merged

Shopper promotions hooks #759

merged 9 commits into from
Oct 13, 2022

Conversation

alexvuong
Copy link
Collaborator

Description

This PR implemented Shopper Promotion hooks. That includes usePromotions and usePromotionsForCampaigns hook in the commerce-react-sdk

Types of Changes

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Documentation update
  • Breaking change (could cause existing functionality to not work as expected)
  • Other changes (non-breaking changes that does not fit any of the above)

Breaking changes include:

  • Removing a public function or component or prop
  • Adding a required argument to a function
  • Changing the data type of a function parameter or return value
  • Adding a new peer dependency to package.json

Changes

  • commerce-react-sdk/src/hooks/ShopperPromotions/query.tsx
  • commerce-react-sdk/src/hooks/ShopperPromotions/query.test.tsx

How to Test-Drive This PR

  • Build your commerce-react-sdk after pulling the branch
  • Start up your test project
  • Go to localhost:3000/use-promotions and localhost:3000/use-promotions-for-campaign to see the hooks in actions
  • Make sure all the unit tests are passing

Checklists

General

  • Changes are covered by test cases
  • CHANGELOG.md updated with a short description of changes (not required for documentation updates)

Accessibility Compliance

You must check off all items in one of the follow two lists:

  • There are no changes to UI

or...

Localization

  • Changes include a UI text update in the Retail React App (which requires translation)

@alexvuong alexvuong added the ready for review PR is ready to be reviewed label Oct 11, 2022
@alexvuong alexvuong requested a review from a team as a code owner October 11, 2022 22:24
@alexvuong alexvuong self-assigned this Oct 11, 2022
options?: UseQueryOptions<DataType<Client['getPromotions']> | Response, Error>
): UseQueryResult<DataType<Client['getPromotions']>, Error>
function usePromotions(
arg: Omit<UsePromotionsArg, 'rawResponse'> & {rawResponse?: true},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: We can remove the ? for rawResponse: true.
Based on the conversation we had in the ShopperSearch PR

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, I've removed it.

return (
<>
<h1>Promotions for a Campaign</h1>
{result?.data.map(({id, name}) => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we sure results?.data will always be defined or do we want to mark data as nullable as well like: results?.data?.map

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've made the change. Thanks for catching that

Copy link
Collaborator

@shethj shethj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@alexvuong alexvuong merged commit 9a7a107 into develop Oct 13, 2022
bfeister added a commit to bfeister/pwa-kit that referenced this pull request Oct 20, 2022
…/W-11935976

* 'fix/W-11935976' of github.com:bfeister/pwa-kit:
  Revert "Remove custom options for react query hoc (SalesforceCommerceCloud#755)" (SalesforceCommerceCloud#775)
  Footer copyright: remove the remaining hardcoded year (SalesforceCommerceCloud#760)
  Shopper promotions hooks (SalesforceCommerceCloud#759)
  Dynamic footer Copyright date (SalesforceCommerceCloud#741)
  [commerce-sdk-react] Add mutation hooks and refactor query hooks (SalesforceCommerceCloud#726)
adamraya added a commit that referenced this pull request Oct 27, 2022
* [commerce-sdk-react] Add mutation hooks and refactor query hooks (#726)

* add mutation hook and refactor query hook

* lint

* fix eslint

* fix ts types

* fix ts type for usequery

* fix lint

* fix test

* lint

* add mutation example

* fix typo

* DRY useAuthenticated

* fix object.keys type

* use better name

* change mutation signature

* fix types

* rename mutations

* fix typos

* fix shopper login types

* fix test

* remove unused vars

* refactor mutation types

* allow useMutation to pass thru options

* remove comment

Co-authored-by: Alex Vuong <[email protected]>

* Dynamic footer Copyright date (#741)

* Update checkout-footer.jsx

* whitespace to bump CLA check

* Add translation and alternate footer changes (force push is to remove unsigned commits from git history)

* Shopper promotions hooks (#759)

* usePromotions and usePromotionsForCampaign hooks

* Footer copyright: remove the remaining hardcoded year (#760)

* Revert "Remove custom options for react query hoc (#755)" (#775)

This reverts commit 9e0f596.

* `<ImageGallery >` uses `image.link` when DIS is not set (#786)

* Fix global context pollution coming from nock (#785)

* Fix global context pollution coming from nock

* remove nock debug env var

* npm run lint:fix

* remove IDE-inserted import

* Use default locale as target if none is specified (#788)

* Use default locale as target if none is specified

* Update CHANGELOG.md

* [commerce-sdk-react] Multisite support (#769)

* add multisite support

* add test

* update comment

* pr feedback

* add locale

* add locale props to queries

* add cookie expire

* attempt to address test issues

* attempt to resolve test issue

* fix test

* fix test again

Co-authored-by: Brian Feister <[email protected]>

* ShopperOrders hooks & mutations (#766)

* Implement useOrder and usePaymentMethodsForOrder hooks

* Add useOrder shopper hook to test

* Add usePaymentMethods hook to test

* Added valid order # to test

* Updating demo

* Completed demo of useOrder and usePaymentMethods

* Added tests

* working on tests

* Fix tests

* remove custom mode

* record mock

* mock oauths/login endpoint

* added more tests

* Updating demos

* add mock response

* add mock response

* Implement hooks in test-commerce

* Began writing tests for mutation, implemented useTaxes hook, cleaned up test-commerce demo

* Passing parameters and body to mutate function

* Mutation test, tax hook, lint

* mocked response

* added removePaymentMethodForOrder hook test

* lint

* Remove mutation tests for now

* remove mutation mocks

* lint

* remove nock for mutation

* createOrder hook in test project

Co-authored-by: Alex Vuong <[email protected]>

* ShopperCustomer hooks and mutations (#762)

* `useCustomer` hook

* `useCustomerAddress` hook

* `useCustomerOrders` hook

* Solve merge conflicts

* Refactor `useCustomer` test page

* Add `useCustomerOrders` hook to test page

* Add `useCustomerBaskets` hook

* Add `useShopperCustomerProductList` hook

* Clean up

* Add ShopperCustomer mutations to test page

* Solve merge conflicts

* Wait to add test file until completed

* Add initial `useCustomer` tests

* add useRegisteredUser HOC

* clean up

* clean up

* Add query hooks tests

* Revert "Add use registered user HOC" (#783)

* Add mutation test

* Update query key structure & Invalidate cache onSuccess mutations

* lint

* Add `useQueryClient`

* Update mock responses

* Update usecustomer-returns-data.json

* PR Feedback

* Remove failing mutation test

* update mock responses

* try fix flaky test

* restore test-utils

* Solve merge conflict

Co-authored-by: Alex Vuong <[email protected]>

* [commerce-sdk-react] Implement shopper baskets hooks (#768)

* Implement queries for shopperBasket hooks

* Added UseShopperBasket page to test-commerce-sdk-react app

* Added unit tests for ShopperBasket Queries

* Added test integrations for ShopperBasket queries

* Added test integrations for shopperbasket queries

* wip

* set cache keys

* multiple refactors

* bug fixes

* lint

* revert unnecessary changes

* remove the bad test examples

* revert temp shopper customer changes

* fix test

Co-authored-by: Jainam Tushar Sheth <[email protected]>
Co-authored-by: Brian Feister <[email protected]>
Co-authored-by: Adam Raya <[email protected]>

* ApiClient config needs to  be updated when cid is changed (#790)

* Add Support policy to all SDKs (#764)

* add Support policy to all SDKs

* Additional default options for React Query (#791)

* Explore having react-query config be on user land

* PR feedback, and simplifying the default options

* Revert to making this option applied server side only

* Fix `useServerContext` returning `isServerSide=false` when on server. (#782)

* Revert contraint on prepass JSX

* PR feedback

* Nock: clean up the list of mocks after each test (#792)

* Update `instanceUrl` on `retail-react-app-demo` preset (#799)

* Update changelog files

* Bump alpha version

* Upgrade minimatch (#793)

* remove minimatch from sdk and update version in pwa-kit-dev

* update lock files

* update lock files

* add more tests

* add comment

* lint

* revert packge-lock file changes

* update pwa-kit-dev package-lock.json

* fix lockfile again

Co-authored-by: Kevin He <[email protected]>
Co-authored-by: Alex Vuong <[email protected]>
Co-authored-by: Brian Feister <[email protected]>
Co-authored-by: Alex Vuong <[email protected]>
Co-authored-by: Vincent Marta <[email protected]>
Co-authored-by: Charles Lavery <[email protected]>
Co-authored-by: Ben Chypak <[email protected]>
Co-authored-by: yunakim714 <[email protected]>
Co-authored-by: Jainam Tushar Sheth <[email protected]>
adamraya added a commit that referenced this pull request Oct 27, 2022
* Starting release process for 2.3.0

* Add guards to result sent to Einstein (#756)

* Add result guards to Einstein and PLP sendViewCategory Einstein

* Bump alpha version

* Update changelog

* 🚢 `2.3.0-alpha.2` (#800)

* [commerce-sdk-react] Add mutation hooks and refactor query hooks (#726)

* add mutation hook and refactor query hook

* lint

* fix eslint

* fix ts types

* fix ts type for usequery

* fix lint

* fix test

* lint

* add mutation example

* fix typo

* DRY useAuthenticated

* fix object.keys type

* use better name

* change mutation signature

* fix types

* rename mutations

* fix typos

* fix shopper login types

* fix test

* remove unused vars

* refactor mutation types

* allow useMutation to pass thru options

* remove comment

Co-authored-by: Alex Vuong <[email protected]>

* Dynamic footer Copyright date (#741)

* Update checkout-footer.jsx

* whitespace to bump CLA check

* Add translation and alternate footer changes (force push is to remove unsigned commits from git history)

* Shopper promotions hooks (#759)

* usePromotions and usePromotionsForCampaign hooks

* Footer copyright: remove the remaining hardcoded year (#760)

* Revert "Remove custom options for react query hoc (#755)" (#775)

This reverts commit 9e0f596.

* `<ImageGallery >` uses `image.link` when DIS is not set (#786)

* Fix global context pollution coming from nock (#785)

* Fix global context pollution coming from nock

* remove nock debug env var

* npm run lint:fix

* remove IDE-inserted import

* Use default locale as target if none is specified (#788)

* Use default locale as target if none is specified

* Update CHANGELOG.md

* [commerce-sdk-react] Multisite support (#769)

* add multisite support

* add test

* update comment

* pr feedback

* add locale

* add locale props to queries

* add cookie expire

* attempt to address test issues

* attempt to resolve test issue

* fix test

* fix test again

Co-authored-by: Brian Feister <[email protected]>

* ShopperOrders hooks & mutations (#766)

* Implement useOrder and usePaymentMethodsForOrder hooks

* Add useOrder shopper hook to test

* Add usePaymentMethods hook to test

* Added valid order # to test

* Updating demo

* Completed demo of useOrder and usePaymentMethods

* Added tests

* working on tests

* Fix tests

* remove custom mode

* record mock

* mock oauths/login endpoint

* added more tests

* Updating demos

* add mock response

* add mock response

* Implement hooks in test-commerce

* Began writing tests for mutation, implemented useTaxes hook, cleaned up test-commerce demo

* Passing parameters and body to mutate function

* Mutation test, tax hook, lint

* mocked response

* added removePaymentMethodForOrder hook test

* lint

* Remove mutation tests for now

* remove mutation mocks

* lint

* remove nock for mutation

* createOrder hook in test project

Co-authored-by: Alex Vuong <[email protected]>

* ShopperCustomer hooks and mutations (#762)

* `useCustomer` hook

* `useCustomerAddress` hook

* `useCustomerOrders` hook

* Solve merge conflicts

* Refactor `useCustomer` test page

* Add `useCustomerOrders` hook to test page

* Add `useCustomerBaskets` hook

* Add `useShopperCustomerProductList` hook

* Clean up

* Add ShopperCustomer mutations to test page

* Solve merge conflicts

* Wait to add test file until completed

* Add initial `useCustomer` tests

* add useRegisteredUser HOC

* clean up

* clean up

* Add query hooks tests

* Revert "Add use registered user HOC" (#783)

* Add mutation test

* Update query key structure & Invalidate cache onSuccess mutations

* lint

* Add `useQueryClient`

* Update mock responses

* Update usecustomer-returns-data.json

* PR Feedback

* Remove failing mutation test

* update mock responses

* try fix flaky test

* restore test-utils

* Solve merge conflict

Co-authored-by: Alex Vuong <[email protected]>

* [commerce-sdk-react] Implement shopper baskets hooks (#768)

* Implement queries for shopperBasket hooks

* Added UseShopperBasket page to test-commerce-sdk-react app

* Added unit tests for ShopperBasket Queries

* Added test integrations for ShopperBasket queries

* Added test integrations for shopperbasket queries

* wip

* set cache keys

* multiple refactors

* bug fixes

* lint

* revert unnecessary changes

* remove the bad test examples

* revert temp shopper customer changes

* fix test

Co-authored-by: Jainam Tushar Sheth <[email protected]>
Co-authored-by: Brian Feister <[email protected]>
Co-authored-by: Adam Raya <[email protected]>

* ApiClient config needs to  be updated when cid is changed (#790)

* Add Support policy to all SDKs (#764)

* add Support policy to all SDKs

* Additional default options for React Query (#791)

* Explore having react-query config be on user land

* PR feedback, and simplifying the default options

* Revert to making this option applied server side only

* Fix `useServerContext` returning `isServerSide=false` when on server. (#782)

* Revert contraint on prepass JSX

* PR feedback

* Nock: clean up the list of mocks after each test (#792)

* Update `instanceUrl` on `retail-react-app-demo` preset (#799)

* Update changelog files

* Bump alpha version

* Upgrade minimatch (#793)

* remove minimatch from sdk and update version in pwa-kit-dev

* update lock files

* update lock files

* add more tests

* add comment

* lint

* revert packge-lock file changes

* update pwa-kit-dev package-lock.json

* fix lockfile again

Co-authored-by: Kevin He <[email protected]>
Co-authored-by: Alex Vuong <[email protected]>
Co-authored-by: Brian Feister <[email protected]>
Co-authored-by: Alex Vuong <[email protected]>
Co-authored-by: Vincent Marta <[email protected]>
Co-authored-by: Charles Lavery <[email protected]>
Co-authored-by: Ben Chypak <[email protected]>
Co-authored-by: yunakim714 <[email protected]>
Co-authored-by: Jainam Tushar Sheth <[email protected]>

* 🚢 Version 2.3.0 (#802)

* Version 2.3.0

* Update changelog files

* Begin development on 2.4.0

Co-authored-by: Kevin He <[email protected]>
Co-authored-by: Alex Vuong <[email protected]>
Co-authored-by: Brian Feister <[email protected]>
Co-authored-by: Alex Vuong <[email protected]>
Co-authored-by: Vincent Marta <[email protected]>
Co-authored-by: Charles Lavery <[email protected]>
Co-authored-by: Ben Chypak <[email protected]>
Co-authored-by: yunakim714 <[email protected]>
Co-authored-by: Jainam Tushar Sheth <[email protected]>
@wjhsf wjhsf deleted the feat/shopper-promotions-hooks branch March 17, 2023 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for review PR is ready to be reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants