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

Local storage in react native #541

Closed
aleksandar-vasic-ananas opened this issue Jul 10, 2024 · 1 comment · Fixed by #550
Closed

Local storage in react native #541

aleksandar-vasic-ananas opened this issue Jul 10, 2024 · 1 comment · Fixed by #550

Comments

@aleksandar-vasic-ananas

I was using search-insights inside my React Native project, and everything was fine. After I moved to version 2.15.0, I started getting the error "Property 'localStorage' doesn't exist."

VERSION: 2.14.0

export function clickedObjectIDsAfterSearch(
  this: AlgoliaAnalytics,
  ...params: Array<WithAdditionalParams<InsightsSearchClickEvent>>
): ReturnType<AlgoliaAnalytics["sendEvents"]> {
  const { events, additionalParams } =
    extractAdditionalParams<InsightsSearchClickEvent>(params);

  return this.sendEvents(addEventType("click", events), additionalParams);
}

VERSION: 2.15.0

export function clickedObjectIDsAfterSearch(
  this: AlgoliaAnalytics,
  ...params: Array<WithAdditionalParams<InsightsSearchClickEvent>>
): ReturnType<AlgoliaAnalytics["sendEvents"]> {
  const { events, additionalParams } =
    extractAdditionalParams<InsightsSearchClickEvent>(params);

  events.forEach(({ index, queryID, objectIDs }) =>
    objectIDs.forEach((objectID) =>
      storeQueryForObject(index, objectID, queryID)
    )
  );

  return this.sendEvents(addEventType("click", events), additionalParams);
}

I detected the issue inside clickedObjectIDsAfterSearch, since from version 2.15.0, they added the function storeQueryForObject that talks to local storage. Since React Native doesn't use local storage, can you please do something about it?

Maybe you could set it so that if it’s a mobile phone, it uses AsyncStorage or MMKV, or even better, add functionality where we can pass the storage we use.

@aleksandar-vasic-ananas aleksandar-vasic-ananas changed the title Local storage on react native Local storage in react native Jul 10, 2024
@zaq42
Copy link

zaq42 commented Jul 15, 2024

Not just React Native. In a node app, with search-insights 2.15.0:

ReferenceError: localStorage is not defined
    at LocalStorage.get (~/.../.yarn/cache/search-insights-npm-2.15.0-99e33c6255-87b5ca470d.zip/node_modules/search-insights/dist/search-insights-node.cjs.min.js:1:699)

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