Skip to content

Commit fdc0417

Browse files
committed
feat(sponsors): add social accounts to sponsor schema, Sanity sync, and sponsor pages
1 parent a7319e3 commit fdc0417

9 files changed

Lines changed: 410 additions & 98 deletions

File tree

‎.github/workflows/deploy.yml‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@ jobs:
4242
path: /tmp/sanity-production-backup.ndjson.gz
4343
retention-days: 30
4444

45-
- name: Sync Enriched Guest Socials to Sanity Dataset
46-
run: node apps/sanity/scripts/sync-guest-socials.mjs
45+
- name: Sync Enriched Guest & Sponsor Socials to Sanity Dataset
46+
run: |
47+
node apps/sanity/scripts/sync-guest-socials.mjs
48+
node apps/sanity/scripts/sync-sponsor-socials.mjs
4749
env:
4850
SANITY_AUTH_TOKEN: ${{ secrets.SANITY_AUTH_TOKEN }}
4951
SANITY_API_WRITE_TOKEN: ${{ secrets.SANITY_API_WRITE_TOKEN }}
@@ -235,8 +237,10 @@ jobs:
235237
path: /tmp/sanity-production-backup.ndjson.gz
236238
retention-days: 30
237239

238-
- name: Sync Enriched Guest Socials to Sanity Dataset
239-
run: node apps/sanity/scripts/sync-guest-socials.mjs
240+
- name: Sync Enriched Guest & Sponsor Socials to Sanity Dataset
241+
run: |
242+
node apps/sanity/scripts/sync-guest-socials.mjs
243+
node apps/sanity/scripts/sync-sponsor-socials.mjs
240244
env:
241245
SANITY_AUTH_TOKEN: ${{ secrets.SANITY_AUTH_TOKEN }}
242246
SANITY_API_WRITE_TOKEN: ${{ secrets.SANITY_API_WRITE_TOKEN }}

‎apps/sanity/extract.json‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3777,6 +3777,14 @@
37773777
},
37783778
"optional": true
37793779
},
3780+
"socials": {
3781+
"type": "objectAttribute",
3782+
"value": {
3783+
"type": "inline",
3784+
"name": "socials"
3785+
},
3786+
"optional": true
3787+
},
37803788
"url": {
37813789
"type": "objectAttribute",
37823790
"value": {

‎apps/sanity/schemas/documents/sponsor.ts‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,22 @@ import { PiCurrencyDollarSimpleFill } from "react-icons/pi";
22
import { defineField, defineType } from "sanity";
33

44
import baseType from "../partials/base";
5+
import { socialsField } from "../partials/user";
56

67
export default defineType({
78
name: "sponsor",
89
title: "Sponsor",
910
icon: PiCurrencyDollarSimpleFill,
1011
type: "document",
12+
groups: [
13+
{
14+
name: "socials",
15+
title: "Social Links",
16+
},
17+
],
1118
fields: [
1219
...baseType.fields,
20+
socialsField,
1321
defineField({
1422
title: "Partner Landing / Tracking Link",
1523
name: "url",

‎apps/sanity/schemas/partials/user.ts‎

Lines changed: 94 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,99 @@ import { defineField, defineType } from "sanity";
33
import baseType from "./base";
44
import externalLink from "../custom/externalLink";
55

6+
export const socialsField = defineField({
7+
name: "socials",
8+
title: "Social Links",
9+
type: "object",
10+
group: "socials",
11+
fields: [
12+
defineField({
13+
name: "bluesky",
14+
type: "string",
15+
}),
16+
defineField({
17+
name: "codepen",
18+
type: "string",
19+
}),
20+
defineField({
21+
name: "devto",
22+
type: "string",
23+
}),
24+
defineField({
25+
name: "discord",
26+
type: "string",
27+
}),
28+
defineField({
29+
name: "dribble",
30+
type: "string",
31+
}),
32+
defineField({
33+
name: "facebook",
34+
type: "string",
35+
}),
36+
defineField({
37+
name: "github",
38+
type: "string",
39+
}),
40+
defineField({
41+
name: "instagram",
42+
type: "string",
43+
}),
44+
defineField({
45+
name: "lastfm",
46+
type: "string",
47+
}),
48+
defineField({
49+
name: "linkedin",
50+
type: "string",
51+
}),
52+
defineField({
53+
name: "email",
54+
type: "string",
55+
}),
56+
defineField({
57+
name: "mastodon",
58+
type: "string",
59+
}),
60+
defineField({
61+
name: "medium",
62+
type: "string",
63+
}),
64+
defineField({
65+
name: "polywork",
66+
type: "string",
67+
}),
68+
defineField({
69+
name: "stackoverflow",
70+
type: "string",
71+
}),
72+
defineField({
73+
name: "substack",
74+
type: "string",
75+
}),
76+
defineField({
77+
name: "threads",
78+
type: "string",
79+
}),
80+
defineField({
81+
name: "tiktok",
82+
type: "string",
83+
}),
84+
defineField({
85+
name: "twitch",
86+
type: "string",
87+
}),
88+
defineField({
89+
name: "twitter",
90+
type: "string",
91+
}),
92+
defineField({
93+
name: "youtube",
94+
type: "string",
95+
}),
96+
],
97+
});
98+
699
const content = defineType({
7100
...baseType,
8101
name: "content",
@@ -15,98 +108,7 @@ const content = defineType({
15108
],
16109
fields: [
17110
...baseType.fields,
18-
defineField({
19-
name: "socials",
20-
title: "Social Links",
21-
type: "object",
22-
group: "socials",
23-
fields: [
24-
defineField({
25-
name: "bluesky",
26-
type: "string",
27-
}),
28-
defineField({
29-
name: "codepen",
30-
type: "string",
31-
}),
32-
defineField({
33-
name: "devto",
34-
type: "string",
35-
}),
36-
defineField({
37-
name: "discord",
38-
type: "string",
39-
}),
40-
defineField({
41-
name: "dribble",
42-
type: "string",
43-
}),
44-
defineField({
45-
name: "facebook",
46-
type: "string",
47-
}),
48-
defineField({
49-
name: "github",
50-
type: "string",
51-
}),
52-
defineField({
53-
name: "instagram",
54-
type: "string",
55-
}),
56-
defineField({
57-
name: "lastfm",
58-
type: "string",
59-
}),
60-
defineField({
61-
name: "linkedin",
62-
type: "string",
63-
}),
64-
defineField({
65-
name: "email",
66-
type: "string",
67-
}),
68-
defineField({
69-
name: "mastodon",
70-
type: "string",
71-
}),
72-
defineField({
73-
name: "medium",
74-
type: "string",
75-
}),
76-
defineField({
77-
name: "polywork",
78-
type: "string",
79-
}),
80-
defineField({
81-
name: "stackoverflow",
82-
type: "string",
83-
}),
84-
defineField({
85-
name: "substack",
86-
type: "string",
87-
}),
88-
defineField({
89-
name: "threads",
90-
type: "string",
91-
}),
92-
defineField({
93-
name: "tiktok",
94-
type: "string",
95-
}),
96-
defineField({
97-
name: "twitch",
98-
type: "string",
99-
}),
100-
defineField({
101-
name: "twitter",
102-
type: "string",
103-
}),
104-
defineField({
105-
name: "youtube",
106-
type: "string",
107-
}),
108-
],
109-
}),
111+
socialsField,
110112
defineField({
111113
name: "websites",
112114
title: "Websites",

0 commit comments

Comments
 (0)