aboutsummaryrefslogtreecommitdiff
path: root/lume/src/patrons.jsx
blob: 65b7025b989e9cd7ce4b5fca08b9dd6653582caa (plain)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
export const title = "Patrons";
export const layout = "base.njk";

const PatronCard = ({ full_name, image_url }) => (
  <div className="bg-bg-1 dark:bg-bgDark-1 rounded-xl m-2 shadow-md w-xs">
    <div className="items-center text-lg p-2">
      {full_name}
    </div>
    <div className="flex items-center justify-center p-2">
      <img className="rounded-xl w-24 h-24" src={image_url} alt={full_name} />
    </div>
  </div>
);

export default ({ patrons }) => {
  const users = patrons.included.Items
    .filter((item) => item.type === "user")
    .map((item) => item.attributes)
    .filter((item) => item.full_name !== "Xe");
  return (
    <>
      <h1 className="text-3xl mb-4">Patrons</h1>
      <p className="mb-4">
        This page is a list of all of my patrons. Thank you all so much for your
        support! If you want to get on this list, please consider{" "}
        <a href="https://patreon.com/cadey">becoming a patron</a> or sponsoring me on{" "}
        <a href="https://github.com/sponsors/Xe">GitHub Sponsors</a>! This page
        will update whenever something changes on Patreon.
      </p>

      <div className="flex flex-wrap items-start justify-center p-2">
        {users.map((user) => <PatronCard key={user.full_name} {...user} />)}
      </div>

      {users.length === 0 && (
        <>
          <p className="text-center">
            No patrons yet!
          </p>
          <p className="text-center">
            <a href="https://patreon.com/cadey">Become a patron</a>{" "}
            to get on this list!
          </p>
        </>
      )}
    </>
  );
};