Giter Club home page Giter Club logo

Comments (9)

aarcangeli avatar aarcangeli commented on May 14, 2024 3

chrome.bookmarks needs the "bookmarks" permission.

Ref: https://developer.chrome.com/docs/extensions/reference/bookmarks/

from chrome-extension-boilerplate-react-vite.

Jonghakseo avatar Jonghakseo commented on May 14, 2024 2

스크린샷 2023-01-09 오후 8 56 05

It's most likely that you didn't reload the extension after giving the permission in the manifest.

Try reloading the extension with the button below in chrome://extensions/

스크린샷 2023-01-09 오후 8 56 41

from chrome-extension-boilerplate-react-vite.

Jonghakseo avatar Jonghakseo commented on May 14, 2024 1

Actually, not only did I reload the extension, I also removed and uploaded it again.

As a side not, the extension doesn't use popup but it is rather injected into the web page

Are you referring to scripts injected via ContentScript?

If so, contentScript has no access to chrome.bookmark functionality.
https://developer.chrome.com/docs/extensions/mv3/content_scripts/

Why don't you use various chrome APIs in backgroundScript and change it to only do input/output(message api) in contentScript?

from chrome-extension-boilerplate-react-vite.

ize-302 avatar ize-302 commented on May 14, 2024 1

@Jonghakseo

Didn't know I could retrieve data that changed outside the render-dom this way.

This works perfectly. Thank you. You're the best 🙌🏼

from chrome-extension-boilerplate-react-vite.

github-actions avatar github-actions commented on May 14, 2024

Thank you for your contribution. We will check and reply to you as soon as possible.

from chrome-extension-boilerplate-react-vite.

ize-302 avatar ize-302 commented on May 14, 2024

Thanks for the quick reply @aarcangeli but I already have that in place

from chrome-extension-boilerplate-react-vite.

ize-302 avatar ize-302 commented on May 14, 2024

Actually, not only did I reload the extension, I also removed and uploaded it again.

As a side not, the extension doesn't use popup but it is rather injected into the web page

from chrome-extension-boilerplate-react-vite.

ize-302 avatar ize-302 commented on May 14, 2024

Thank you @Jonghakseo

Yes that is what I am referring to. Currently, I am injecting the component right from the ContentScript. I am also making the bookmarks call from the background.js file which works great.

The issue is with bookmark search api which is chrome.bookmarks.search. I get the response but can't seem to get it into the component. Here is my snippet:

Snippet from contentScript:
Screenshot 2023-01-09 at 19 52 30

Snippet from background.js
Screenshot 2023-01-09 at 19 53 07

The result of the search is assigned to a variable searchresult but I cant seem to be able to use it in component

from chrome-extension-boilerplate-react-vite.

Jonghakseo avatar Jonghakseo commented on May 14, 2024

@ize-302

This is just a React issue.
Re-rendering of React components is scheduled by default with the scheduleUpdateOnFiber method via dispatchAction .

The methods that call dispatchAction are the setState or use~ hooks we use in react.

You seem to think that the data you change outside the render of react-dom cannot be retrieved from the App component because it is not something that can be detected by the App component.

As shown below, generating a message event inside the component and managing the value as a state seems to solve the problem.

happy coding 🎉

import { useState } from "react";

export default function App() {
  const [result, setResult] = useState();
  const sendMsg = () => {
    chrome.runtime.sendMessage("ChromeExtensionBoilerplate", (response) => {
      setResult(response);
    });
  };

  console.log(result);

  return (
    <div className="content-view" onClick={sendMsg}>
      content view
    </div>
  );
}

스크린샷 2023-01-12 오후 10 03 43

from chrome-extension-boilerplate-react-vite.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.