npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@cn-npm/cn-donate

v1.0.7

Published

Implements third party donate modal for Charity Navigator

Downloads

126

Readme

cn-donate

Implements the Charity Navigator donate modal that can be used in third party web sites. This module implementst the logic for displaying an iFrame when a donate button is clicked in the third party site. It relies on the Charity Navigator website to provide the donation form content inside the iFrame.


Local project setup

Installation

npm install

Build

npm run build

Release (to NPM)

This step requires access to the @cn-npm NPM repo.

npm run release

How it works

We want to display an iFrame in a third party site that references content from a different domain, passing data between the two. In our case, that means we need to pass data such as the EIN and nonprofit name from the third party site to the cn-site content as well as pass events back to the third party site. We use Zoid to create a cross-domain component that can be used to pass data between the two domains. For this to work properly, Zoid must be registered in both the third party site and in cn-site. This library packages the Zoid component config and the logic to display the iFrame in the third party site.

This package is meant to be installed as a dependency in the main cn-site. The main site will then include dist/provider.js from this package in the page that shows the donate content. This will display the "inside" content of the iframe.

cn-site will also expose dist/donate.js as an endpoint from cn-site. This will be included in the third party site's page and implement the "outside" content of the iframe. This script will also hook the donate buttons in the third party site, displaying the iFrame when the button is clicked.

tailwind

Preflight is disabled for this library. This avoids tailwind resetting all of the styles in the html that this library is included in. This is done by setting the preflight option to false in the tailwind.config.js file.