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

Final touches for Quickstarts #2962

Conversation

josemigallas
Copy link
Contributor

What this PR does / why we need it:

Once this PR is merged, we should be able to deploy to master and ship this new feature.

Changes:

  • Removes feature config
  • Prevent Quickstarts from rendering when not necessary
  • Cleanup / Refactor

Which issue(s) this PR fixes
THREESCALE-8283: Integrate Quick Starts into 3scale

@josemigallas josemigallas self-assigned this Apr 11, 2022
* This is a collection of wrappers around localStorage to ease getting information about Quickstarts state
*/

function getActiveQuickstart (): null | string {
Copy link

@jkeam jkeam Apr 22, 2022

Choose a reason for hiding this comment

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

I think you can do something like:

function getActiveQuickstart(): null | string {
  const quickstartId = localStorage.getItem('quickstartId')
  return quickstartId || null
}

From MDN (https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem), it returns: A string containing the value of the key. If the key does not exist, null is returned.

I don't think there's a need to JSON.parse as it looks like it's an ID you are saving and then retrieving.

And no need to check for length as the getItem call will already return either the string or null if the key does not exist. The reason for the short circuit logic in the return is to catch the edge case of quickstartId being an empty string.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Here's the catch: the Patternfly component stores this value as a stringyfied JSON, so the possible values are

undefined
"\"\""
"\"creating-a-method-quick-start\""

So we first need to check if it's a valid JSON and if so, if it's an empty string 😂

I forgot to add some tests, I hope it'll be clearer now

Copy link

@jkeam jkeam Apr 27, 2022

Choose a reason for hiding this comment

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

Ah I see. Then maybe we can make the variable named better? Anything named 'id' is usually a number (or sometimes a string for something like a guid); but in the case of an object, maybe a better name here? Just an idea.

@josemigallas josemigallas force-pushed the THREESCALE-8283_quickstarts_final_touches branch from d8a0b5b to 567cf3e Compare April 27, 2022 10:36
@josemigallas josemigallas merged commit 6ab7005 into 8187-BasicAPIintegration Apr 27, 2022
@josemigallas josemigallas deleted the THREESCALE-8283_quickstarts_final_touches branch April 27, 2022 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants