Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain
Made Me Smile Woven Keychain

Made Me Smile Woven Keychain

Price

$16.00 $10.00
Save 38%

color

Please select a color

Quantity

/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

Save a life, and share a smile!

50% of people who see a smile will return it.

We want to spread as many smiles as possible and help those that may need an extra one. Make a difference, spread smiles, and save lives, while adding a unique and stylish keychain to your collection!

  • Spark conversation and raise awareness to help save others
  • A portion of the proceeds will be donated to The International Association for Suicide Prevention

Why do you NEED this keychain?

We can all agree that everyone needs to smile more.

Whenever you use this keychain, you'll feel the love! We guarantee that someone will compliment you on your style or your money back.

Not only does this keychain empower others to smile with its unique and stylish design, but it also has a great cause behind it so you can feel good about your purchase.

This keychain is made from high-quality materials, ensuring that it is durable and long-lasting. It's the perfect accessory for your bag or keys.

How does it help others?

For every keychain sold, we are donating A portion of the proceeds to mental health and suicide prevention programs. We have chosen the best charity in the world to guarantee your purchase makes a difference!

This is what you'll get!

This keychain symbolizes kindness, love, and happiness. Standing true to its meaning, this keychain is meant to show off your true colors and make someone's day better.

  • Support a great cause
  • Receive a unique and stylish keychain
  • Look and feel better than ever