summaryrefslogtreecommitdiff
path: root/examples/blog/src/components/LikeButton.tsx
blob: 23d8518de9ece541836db8d63710efab88b713b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { useState } from 'preact/hooks';

interface Props {
	pageUrl: string;
}

export default function LikeButton({ pageUrl }: Props) {
	const persistedLike = localStorage.getItem(`liked-${pageUrl}`);
	const [liked, setLiked] = useState(persistedLike ? JSON.parse(persistedLike) : false);

	function toggleLike() {
		const toggled = !liked;
		setLiked(toggled);
		// preserve your likes as you navigate the site
		localStorage.setItem(`liked-${pageUrl}`, JSON.stringify(toggled));
	}

	return (
		<button onClick={toggleLike}>
			<svg
				xmlns="http://www.w3.org/2000/svg"
				xmlnsXlink="http://www.w3.org/1999/xlink"
				width="1em"
				height="1em"
				viewBox="0 0 24 24"
			>
				{/* fill the heart when liked ♥ */}
				<path
					fill={liked ? 'red' : '#ccc'}
					d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53L12 21.35Z"
				></path>
			</svg>
		</button>
	);
}
yaml?h=@astrojs/vercel@2.1.0&id=01c1aaa00397c7fdc7a3ef7fb0212eb43aad6238&follow=1'>Fix CSS ordering between imported and Astro styles (#4907)Gravatar Matthew Phillips 12-7/+218 * Fix CSS ordering between imported and Astro styles * Fix linting errors * Add changeset and upgrade compiler version * Update test to reflect shared styles placed before page styles 2022-09-28[ci] formatGravatar matthewp 23-137/+127 2022-09-28Astro.cookies implementation (#4876)Gravatar Matthew Phillips 32-29/+943 * Astro.cookies implementation * Remove unused var * Fix build * Add a changesetp * Remove spoken-word expires 2022-09-28Fix: let Squoosh default image quality internally (#4906)Gravatar Tony Sullivan 5-11/+20 * removes our quality defaults, allowing Squoosh format-specific defaults to be used * chore: add changeset 2022-09-28Update README.md (#4898)Gravatar stijlmassi 1-2/+3 * Update README.md In the astro.config.mjs: defineConfig() was missing. * Update packages/integrations/tailwind/README.md Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com> Co-authored-by: Fred K. Schott <fkschott@gmail.com> Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com> 2022-09-28Fix test (#4904)Gravatar Bjorn Lu 2-1/+7 2022-09-28[ci] formatGravatar FredKSchott 2-4/+4 2022-09-28redesign basics template (#4879)Gravatar Fred K. Schott 3-88/+34 2022-09-28[ci] formatGravatar bluwy 1-2/+2 2022-09-28Remove shamefully-hoist (#4842)Gravatar Bjorn Lu 104-527/+768 2022-09-28[ci] formatGravatar matthewp 4-14/+16 2022-09-28Hoist hydration script out of slot templates (#4891)Gravatar Matthew Phillips 13-43/+165 * Hoist hydration script out of slot templates * Add changeset * Fix HTML components * Mark as html string 2022-09-28Ensure head content rendered once with lazy layouts (#4892)Gravatar Matthew Phillips 9-3/+59 * Ensure head content rendered once with lazy layouts * Add changeset 2022-09-27fixed typing (#4893)Gravatar tweenietomatoes 1-1/+1 2022-09-27[ci] release (#4846)create-astro@1.1.0astro@1.3.1@astrojs/webapi@1.1.0@astrojs/vercel@2.0.1@astrojs/mdx@0.11.2@astrojs/image@0.8.0Gravatar Fred K. Bot 60-185/+169 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> 2022-09-27fix: post API routes in SSG should warn or error during dev mode (#4878)Gravatar Rishi Raj Jain 3-2/+17 * Update endpoint.ts * add warning for post routes called when output is not server * Update famous-camels-study.md * Update endpoint.ts * If not get * Resolve changes 2022-09-27docs: Fix links to Tailwind examples (#4883)Gravatar Deanmv 1-1/+1 Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> 2022-09-27Set SSR target webworker for Vercel edge (#4884)Gravatar Bjorn Lu 2-0/+6 2022-09-27[ci] update lockfile (#4885)Gravatar Fred K. Bot 1-86/+79 Co-authored-by: FredKSchott <FredKSchott@users.noreply.github.com> 2022-09-26[ci] formatGravatar bholmesdev 3-23/+19 2022-09-26Fix: correctly transform `import.meta.env.*` in MDX (#4858)Gravatar Ben Holmes 12-233/+454 * fix: serialize route pattern for Netlify edge Co-authored-by: Jackie Macharia <jackiewmacharia> * fix: escape import.meta.env in MDX compiler output * test: env vars in mdx * chore: changeset * deps: estree-util-visit, @types/estree * feat: inject import.meta.env w/ recma * feat: pull importMetaEnv from vite + astro configs * test: `import.meta.env` in JSX * fix: lockfile * chore: update changeset * fix: remove stray stashed commit 2022-09-26Change negative lookbehind to lookahead (#4866)Gravatar Rishi Raj Jain 1-1/+1 2022-09-26add double check on astro file return type to display more human readable ↵Gravatar Steven Yung 6-2/+61 error (#4857) 2022-09-26[ci] update lockfile (#4862)Gravatar Fred K. Bot 1-81/+81 Co-authored-by: FredKSchott <FredKSchott@users.noreply.github.com> 2022-09-26fix: Script with innerHTML not working on Safari (#4861)Gravatar Rishi Raj Jain 3-3/+10 * fix: Script with innerHTML not working on Safari * Update cool-camels-tease.md 2022-09-26Prevent /undefined catch-all routes in dev (#4873)Gravatar Bjorn Lu 6-9/+66 2022-09-26fix: 🐛 BUG: class:list directive adding class attribute when undefined ↵Gravatar Rishi Raj Jain 2-2/+9 (#4867) * Update hydration.ts * Create lucky-comics-bow.md 2022-09-26docs: Standardize common integration READMEs (#4874)Gravatar Jake Strawn 7-6/+66 2022-09-26docs: Update references to support channel in Discord. (#4872)Gravatar Jake Strawn 12-12/+12 2022-09-26[ci] formatGravatar bluwy 1-1/+1 2022-09-26fix: "chunks" directory appears in build output, if custom modules are ↵Gravatar Rishi Raj Jain 2-6/+34 imported in Astro files (#4868) 2022-09-23[ci] formatGravatar matthewp 1-1/+1 2022-09-23Define toStringTag another way (#4855)Gravatar Matthew Phillips 2-4/+12 * Define toStringTag another way * Adding a changeset 2022-09-23update SSR example to match recent change on Astro API Context (#4854)Gravatar Steven Yung 2-4/+6 2022-09-23[ci] update lockfile (#4852)Gravatar Fred K. Bot 1-373/+402 Co-authored-by: FredKSchott <FredKSchott@users.noreply.github.com>