diff --git a/.github/ISSUE_TEMPLATE/Question.md b/.github/ISSUE_TEMPLATE/Question.md index 358cfa8..dc2cfa6 100644 --- a/.github/ISSUE_TEMPLATE/Question.md +++ b/.github/ISSUE_TEMPLATE/Question.md @@ -3,4 +3,4 @@ name: Question about: Ask a question about this project --- -Share your question here. If you have a code snippet, please include it. \ No newline at end of file +Share your question here. If you have a code snippet, please include it. diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f1ceddb..2d78567 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -11,5 +11,4 @@ updates: interval: "monthly" ignore: - dependency-name: "*" - update-types: - ["version-update:semver-minor", "version-update:semver-patch"] + update-types: ["version-update:semver-minor", "version-update:semver-patch"] diff --git a/.prettierrc b/.prettierrc index 5059e87..e229a6c 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,7 +1,14 @@ { - "trailingComma": "none", - "tabWidth": 2, + "arrowParens": "always", + "bracketSameLine": true, + "bracketSpacing": true, "plugins": ["@ianvs/prettier-plugin-sort-imports"], + "printWidth": 100, + "semi": true, + "singleQuote": false, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false, "importOrder": [ "^react$", "^next/(.*)$", diff --git a/.storybook/LatinaDevTheme.ts b/.storybook/LatinaDevTheme.ts index 56ef655..ac2b3ba 100644 --- a/.storybook/LatinaDevTheme.ts +++ b/.storybook/LatinaDevTheme.ts @@ -5,8 +5,7 @@ export default create({ base: "light", // Typography - fontBase: - '"Latina Light", "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif', + fontBase: '"Latina Light", "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif', fontCode: 'ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Courier New", monospace', @@ -39,5 +38,5 @@ export default create({ inputBg: "#ffffff", inputBorder: "#151515", inputTextColor: "#151515", - inputBorderRadius: 8 + inputBorderRadius: 8, }); diff --git a/.storybook/main.ts b/.storybook/main.ts index a5dae7c..5e547fa 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -8,7 +8,7 @@ const config: StorybookConfig = { // 👇 Storybook will load all files that match this glob files: "**/*.mdx", // 👇 Used when generating automatic titles for your stories - titlePrefix: "Docs" + titlePrefix: "Docs", }, { // 👇 Sets the directory containing your stories @@ -16,8 +16,8 @@ const config: StorybookConfig = { // 👇 Storybook will load all files that match this glob files: "**/*.stories.@(js|jsx|ts|tsx)", // 👇 Used when generating automatic titles for your stories - titlePrefix: "Components" - } + titlePrefix: "Components", + }, ], addons: [ @@ -32,7 +32,7 @@ const config: StorybookConfig = { framework: { name: "@storybook/nextjs", - options: {} + options: {}, }, staticDirs: ["../public"], diff --git a/.storybook/manager.ts b/.storybook/manager.ts index 010ea04..3fa6086 100644 --- a/.storybook/manager.ts +++ b/.storybook/manager.ts @@ -3,5 +3,5 @@ import { addons } from "@storybook/manager-api"; import LatinaDevTheme from "./LatinaDevTheme"; addons.setConfig({ - theme: LatinaDevTheme + theme: LatinaDevTheme, }); diff --git a/.storybook/preview.ts b/.storybook/preview.ts index d006a57..78a272f 100644 --- a/.storybook/preview.ts +++ b/.storybook/preview.ts @@ -7,17 +7,17 @@ const preview: Preview = { controls: { matchers: { color: /(background|color)$/i, - date: /Date$/ - } + date: /Date$/, + }, }, layout: "centered", options: { storySort: { method: "alphabetical", - order: ["Docs", "Components"] - } - } - } + order: ["Docs", "Components"], + }, + }, + }, }; export default preview; diff --git a/.vscode/settings.json b/.vscode/settings.json index 8f39472..31f584c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,27 @@ { - "typescript.tsdk": "node_modules/typescript/lib", + "eslint.options": { + "overrideConfig": { + "rules": { + "no-debugger": "off" + } + } + }, + "editor.codeActionsOnSave": { + "source.addMissingImports": "always", + "source.fixAll.eslint": "always", + "source.fixAll.stylelint": "explicit", + "source.removeUnusedImports": "always" + }, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.detectIndentation": true, + "editor.fontVariations": false, + "editor.formatOnSave": true, + "editor.wordWrap": "on", + "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"], + "prettier.withNodeModules": false, + "stylelint.validate": ["css", "less"], "typescript.enablePromptUseWorkspaceTsdk": true, - "editor.formatOnSave": true + "typescript.preferences.importModuleSpecifier": "non-relative", + "typescript.tsdk": "node_modules/typescript/lib", + "typescript.updateImportsOnFileMove.enabled": "always" } diff --git a/README.md b/README.md index 6025f65..1e85d91 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Our goal is to increase visibility and access to valuable opportunities. 📚 [Documentation](https://docs.latina.dev) -👾 [Slack](https://latinadev.slack.com) ([Request an invite](mailto:hello@latina.dev)) +👾 [Slack](https://latinadev.slack.com) ([Request an invite via email](mailto:hello@latina.dev)) 🎨 [Storybook](https://www.chromatic.com/library?appId=6472ce8643c60096810af8c0) diff --git a/app/global-error.tsx b/app/global-error.tsx index 9bda5fe..1f2b2d4 100644 --- a/app/global-error.tsx +++ b/app/global-error.tsx @@ -1,8 +1,9 @@ "use client"; -import * as Sentry from "@sentry/nextjs"; -import NextError from "next/error"; import { useEffect } from "react"; +import NextError from "next/error"; + +import * as Sentry from "@sentry/nextjs"; export default function GlobalError({ error }: { error: Error & { digest?: string } }) { useEffect(() => { @@ -20,4 +21,4 @@ export default function GlobalError({ error }: { error: Error & { digest?: strin ); -} \ No newline at end of file +} diff --git a/app/layout.tsx b/app/layout.tsx index d450b39..cdb86dd 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -15,20 +15,16 @@ import "/styles/_styles.css"; export const metadata = { title: { default: "Latina Dev", - template: "%s | Latina Dev" + template: "%s | Latina Dev", }, description: "Latina Dev is an open-source directory of Latina software engineers at the student, IC, and leadership levels. Our goal is to increase visibility and access to valuable opportunities.", icons: { - shortcut: "/favicon.png" - } + shortcut: "/favicon.png", + }, }; -export default function RootLayout({ - children -}: { - children: React.ReactNode; -}) { +export default function RootLayout({ children }: { children: React.ReactNode }) { return ( diff --git a/app/members/[slug]/page.tsx b/app/members/[slug]/page.tsx index 429a93c..5e0466b 100644 --- a/app/members/[slug]/page.tsx +++ b/app/members/[slug]/page.tsx @@ -40,12 +40,7 @@ export default async function Member({ params }: Props) {

{affiliation}

{level}

{countries && } - {bio && ( -
- )} + {bio &&
}
@@ -57,7 +52,7 @@ export async function generateStaticParams() { const members = await getMembers(); return members.map((member) => ({ - slug: member.slug + slug: member.slug, })); } @@ -65,6 +60,6 @@ export async function generateStaticParams() { export async function generateMetadata({ params }: Props) { const member = await getMemberBySlug(params.slug); return { - title: `${member?.name} | Members` + title: `${member?.name} | Members`, }; } diff --git a/components/ButtonLink/ButtonLink.stories.ts b/components/ButtonLink/ButtonLink.stories.ts index 53cab52..d5b0e33 100644 --- a/components/ButtonLink/ButtonLink.stories.ts +++ b/components/ButtonLink/ButtonLink.stories.ts @@ -4,20 +4,20 @@ import type { Meta, StoryObj } from "@storybook/react"; import ButtonLink from "./ButtonLink"; -const meta: Meta = { +const meta: Meta = { title: "ButtonLink", component: ButtonLink, - tags: ["autodocs"] + tags: ["autodocs"], }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const ViewAllMembers: Story = { args: { text: "View all members", url: "/members", - icon: faMagnifyingGlass - } + icon: faMagnifyingGlass, + }, }; diff --git a/components/ButtonLink/ButtonLink.tsx b/components/ButtonLink/ButtonLink.tsx index dd90d0c..5b71a02 100644 --- a/components/ButtonLink/ButtonLink.tsx +++ b/components/ButtonLink/ButtonLink.tsx @@ -18,12 +18,7 @@ const ButtonLink = (props: Props) => { const target = external ? "_blank" : "_self"; return ( - + {text} {icon && } ); diff --git a/components/CountryFlags/CountryFlags.stories.ts b/components/CountryFlags/CountryFlags.stories.ts index 84a42c8..ccf2c69 100644 --- a/components/CountryFlags/CountryFlags.stories.ts +++ b/components/CountryFlags/CountryFlags.stories.ts @@ -2,24 +2,24 @@ import type { Meta, StoryObj } from "@storybook/react"; import CountryFlags from "./CountryFlags"; -const meta: Meta = { +const meta: Meta = { title: "CountryFlags", component: CountryFlags, - tags: ["autodocs"] + tags: ["autodocs"], }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const SingleCountry: Story = { args: { - countries: ["Peru"] - } + countries: ["Peru"], + }, }; export const MultipleCountries: Story = { args: { - countries: ["Peru", "Brazil", "Argentina"] - } + countries: ["Peru", "Brazil", "Argentina"], + }, }; diff --git a/components/CountryFlags/CountryFlags.tsx b/components/CountryFlags/CountryFlags.tsx index 484dc93..043dbbf 100644 --- a/components/CountryFlags/CountryFlags.tsx +++ b/components/CountryFlags/CountryFlags.tsx @@ -24,7 +24,7 @@ const countryOptions: CountryOption[] = [ { country: "Chile", flag: "🇨🇱" }, { country: "Puerto Rico", flag: "🇵🇷" }, { country: "Belize", flag: "🇧🇿" }, - { country: "Haiti", flag: "🇭🇹" } + { country: "Haiti", flag: "🇭🇹" }, ]; interface Props { @@ -36,9 +36,7 @@ const CountryFlags = (props: Props) => { // get flag based on country name given const getFlag = (country: string) => { - const countryOption = countryOptions.find( - (countryOption) => countryOption.country === country - ); + const countryOption = countryOptions.find((countryOption) => countryOption.country === country); if (!countryOption) return null; return countryOption.flag; }; diff --git a/components/Footer/Footer.stories.ts b/components/Footer/Footer.stories.ts index 4786e4d..c4b7df5 100644 --- a/components/Footer/Footer.stories.ts +++ b/components/Footer/Footer.stories.ts @@ -2,16 +2,16 @@ import type { Meta, StoryObj } from "@storybook/react"; import Footer from "./Footer"; -const meta: Meta = { +const meta: Meta = { title: "Footer", component: Footer, - tags: ["autodocs"] + tags: ["autodocs"], }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const Default: Story = { - args: {} + args: {}, }; diff --git a/components/Footer/Footer.tsx b/components/Footer/Footer.tsx index 1f21219..eccf27e 100644 --- a/components/Footer/Footer.tsx +++ b/components/Footer/Footer.tsx @@ -1,11 +1,7 @@ import Image from "next/image"; import Link from "next/link"; -import { - faGithub, - faLinkedin, - faSlack -} from "@fortawesome/free-brands-svg-icons"; +import { faGithub, faLinkedin, faSlack } from "@fortawesome/free-brands-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import styles from "./Footer.module.css"; @@ -17,22 +13,16 @@ const Footer = () => { + target={"_blank"}> - + + target={"_blank"}> @@ -40,14 +30,8 @@ const Footer = () => { - Vercel + target={"_blank"}> + Vercel diff --git a/components/GitHubCorner/GitHubCorner.stories.ts b/components/GitHubCorner/GitHubCorner.stories.ts index 6fbe3d1..1a7dc8f 100644 --- a/components/GitHubCorner/GitHubCorner.stories.ts +++ b/components/GitHubCorner/GitHubCorner.stories.ts @@ -2,16 +2,16 @@ import type { Meta, StoryObj } from "@storybook/react"; import GitHubCorner from "./GitHubCorner"; -const meta: Meta = { +const meta: Meta = { title: "GitHubCorner", component: GitHubCorner, - tags: ["autodocs"] + tags: ["autodocs"], }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const Default: Story = { - args: {} + args: {}, }; diff --git a/components/GitHubCorner/GitHubCorner.tsx b/components/GitHubCorner/GitHubCorner.tsx index 4f220e3..c351725 100644 --- a/components/GitHubCorner/GitHubCorner.tsx +++ b/components/GitHubCorner/GitHubCorner.tsx @@ -8,20 +8,17 @@ const GitHubCorner = () => { href="https://github.com/latina-dev/latina-dev" className={styles.githubCornerLink} aria-label="View source on GitHub" - target={"_blank"} - > + target={"_blank"}> + className={styles.octoArm}> + className={styles.octoBody}> ); diff --git a/components/Homepage/About/About.tsx b/components/Homepage/About/About.tsx index d6e7a35..a916bda 100644 --- a/components/Homepage/About/About.tsx +++ b/components/Homepage/About/About.tsx @@ -12,14 +12,14 @@ export default function About() {

About Us

- A community for present & future Latina software engineers created to - connect, elevate and empower the next generation of tech leaders. + A community for present & future Latina software engineers created to connect, elevate and + empower the next generation of tech leaders.

- Less than 15% of engineers are women; 2% are Latina. We want that to - change! {metadata.description} + Less than 15% of engineers are women; 2% are Latina. We want that to change!{" "} + {metadata.description}

{ const { name, github, imagePath } = props; return ( <> - - {name} + + {name}

{name}

diff --git a/components/Homepage/Maintainers/Maintainers.tsx b/components/Homepage/Maintainers/Maintainers.tsx index b987c5f..5878f63 100644 --- a/components/Homepage/Maintainers/Maintainers.tsx +++ b/components/Homepage/Maintainers/Maintainers.tsx @@ -7,16 +7,8 @@ export default function Maintainers() {

Contributors

- - + +
); diff --git a/components/Homepage/MemberPreview/MemberPreview.tsx b/components/Homepage/MemberPreview/MemberPreview.tsx index ecbcae1..58f341c 100644 --- a/components/Homepage/MemberPreview/MemberPreview.tsx +++ b/components/Homepage/MemberPreview/MemberPreview.tsx @@ -14,14 +14,6 @@ interface Props { const MemberPreview = (props: Props) => { const { members } = props; - // sort members by added date property - const membersSorted = members.sort((a, b) => { - const firstDate = new Date(a.added); - const secondDate = new Date(b.added); - if (firstDate < secondDate) return -1; - return 1; - }); - // 6 random members picked from original members array const membersRandom = members.sort(() => Math.random() - 0.5).slice(0, 6); @@ -34,11 +26,7 @@ const MemberPreview = (props: Props) => { ))}
- +
); diff --git a/components/Layout/MetaTags.tsx b/components/Layout/MetaTags.tsx index 71d4df9..7bf18ea 100644 --- a/components/Layout/MetaTags.tsx +++ b/components/Layout/MetaTags.tsx @@ -2,18 +2,10 @@ export default function MetaTags() { return ( <> - + {/* For new browsers - multisize ico */} - + {/* For iPad with high-resolution Retina display running iOS ≥ 7: */} {/* For first- and second-generation iPad: */} - + {/* For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: */} - + {/* For Old Chrome */} {/* For IE10 Metro */} - + {/* Chrome for Android */} diff --git a/components/Logo/Logo.stories.tsx b/components/Logo/Logo.stories.tsx index 7d7d783..3525ee0 100644 --- a/components/Logo/Logo.stories.tsx +++ b/components/Logo/Logo.stories.tsx @@ -2,16 +2,16 @@ import type { Meta, StoryObj } from "@storybook/react"; import Logo from "./Logo"; -const meta: Meta = { +const meta: Meta = { title: "Logo", component: Logo, - tags: ["autodocs"] + tags: ["autodocs"], }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const Default: Story = { - args: {} + args: {}, }; diff --git a/components/Logo/Logo.tsx b/components/Logo/Logo.tsx index b8abff5..3a92141 100644 --- a/components/Logo/Logo.tsx +++ b/components/Logo/Logo.tsx @@ -14,8 +14,7 @@ const Logo = (props: Props) => { height="60" fill="none" className={className} - viewBox="0 0 138 267" - > + viewBox="0 0 138 267"> = { +const meta: Meta = { title: "MemberCard", component: MemberCard, - tags: ["autodocs"] + tags: ["autodocs"], }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const Default: Story = { args: { member: { - ...exampleMember - } - } + ...exampleMember, + }, + }, }; diff --git a/components/Navbar/Navbar.stories.tsx b/components/Navbar/Navbar.stories.tsx index 47b0db9..420d815 100644 --- a/components/Navbar/Navbar.stories.tsx +++ b/components/Navbar/Navbar.stories.tsx @@ -2,16 +2,16 @@ import type { Meta, StoryObj } from "@storybook/react"; import Navbar from "./Navbar"; -const meta: Meta = { +const meta: Meta = { title: "Navbar", component: Navbar, - tags: ["autodocs"] + tags: ["autodocs"], }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const Default: Story = { - args: {} + args: {}, }; diff --git a/components/Navbar/Navbar.tsx b/components/Navbar/Navbar.tsx index c544d24..637bd11 100644 --- a/components/Navbar/Navbar.tsx +++ b/components/Navbar/Navbar.tsx @@ -18,8 +18,7 @@ export default function Navbar() { + className="pl-4 sm:pl-10 inline-block"> Add your profile @@ -27,8 +26,7 @@ export default function Navbar() { + className="pl-4 sm:pl-10"> Contribute diff --git a/components/SocialLinks/SocialLinks.stories.ts b/components/SocialLinks/SocialLinks.stories.ts index 0b9b61a..a7c9d57 100644 --- a/components/SocialLinks/SocialLinks.stories.ts +++ b/components/SocialLinks/SocialLinks.stories.ts @@ -3,20 +3,20 @@ import { exampleMember } from "@/types/members"; import SocialLinks from "./SocialLinks"; -const meta: Meta = { +const meta: Meta = { title: "SocialLinks", component: SocialLinks, - tags: ["autodocs"] + tags: ["autodocs"], }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const Default: Story = { args: { member: { - ...exampleMember - } - } + ...exampleMember, + }, + }, }; diff --git a/components/SocialLinks/SocialLinks.tsx b/components/SocialLinks/SocialLinks.tsx index cc214e1..d380af5 100644 --- a/components/SocialLinks/SocialLinks.tsx +++ b/components/SocialLinks/SocialLinks.tsx @@ -1,10 +1,6 @@ import Link from "next/link"; -import { - faGithub, - faLinkedin, - faTwitter -} from "@fortawesome/free-brands-svg-icons"; +import { faGithub, faLinkedin, faTwitter } from "@fortawesome/free-brands-svg-icons"; import { faGlobe } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; @@ -27,8 +23,7 @@ const SocialLinks = (props: MemberProps) => { href={`https://www.linkedin.com/in/${linkedin}`} aria-label={`${name} LinkedIn`} target={"_blank"} - rel="noopener noreferrer" - > + rel="noopener noreferrer"> )} @@ -38,8 +33,7 @@ const SocialLinks = (props: MemberProps) => { href={`https://www.github.com/${github}`} aria-label={`${name} GitHub`} target={"_blank"} - rel="noopener noreferrer" - > + rel="noopener noreferrer"> )} @@ -49,8 +43,7 @@ const SocialLinks = (props: MemberProps) => { href={`https://www.twitter.com/${twitter}`} aria-label={`${name} Twitter`} target={"_blank"} - rel="noopener noreferrer" - > + rel="noopener noreferrer"> )} @@ -60,8 +53,7 @@ const SocialLinks = (props: MemberProps) => { href={website} aria-label={`${name} Website`} target={"_blank"} - rel="noopener noreferrer" - > + rel="noopener noreferrer"> )} diff --git a/docs/index.html b/docs/index.html index b181055..e821446 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,58 +4,39 @@ + content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> Latina Dev + content="Latina Dev is an open-source directory of Latina software engineers." /> - + - + - + href="https://latina.dev/img/favicons/favicon.ico" /> + + href="https://latina.dev/img/favicons/favicon-180-precomposed.png" /> + content="https://latina.dev/img/favicons/favicon-144.png" /> - + + content="Latina Dev is an open-source directory of Latina software engineers." /> @@ -106,14 +87,13 @@ auto2top: true, executeScript: true, loadSidebar: true, - homepage: - "https://raw.githubusercontent.com/Latina-Dev/latina-dev/main/README.md", + homepage: "https://raw.githubusercontent.com/Latina-Dev/latina-dev/main/README.md", name: "Latina Dev", search: { paths: "auto", placeholder: "Type to search 🔍", - noData: "No Results! 🦉" - } + noData: "No Results! 🦉", + }, }; diff --git a/docs/pages/welcome.md b/docs/pages/welcome.md index 44e39d4..b140d60 100644 --- a/docs/pages/welcome.md +++ b/docs/pages/welcome.md @@ -24,4 +24,4 @@ Amplify opportunities for over 1,000 Latina software engineers by 2025. ## Roadmap -[Request an invite](mailto:hello@latina.dev) to [our Slack community](https://latinadev.slack.com) to learn more about our roadmap and how you can contribute. \ No newline at end of file +[Request an invite](mailto:hello@latina.dev) to [our Slack community](https://latinadev.slack.com) to learn more about our roadmap and how you can contribute. diff --git a/instrumentation.ts b/instrumentation.ts index 7b89a97..f8a929b 100644 --- a/instrumentation.ts +++ b/instrumentation.ts @@ -1,9 +1,9 @@ export async function register() { - if (process.env.NEXT_RUNTIME === 'nodejs') { - await import('./sentry.server.config'); + if (process.env.NEXT_RUNTIME === "nodejs") { + await import("./sentry.server.config"); } - if (process.env.NEXT_RUNTIME === 'edge') { - await import('./sentry.edge.config'); + if (process.env.NEXT_RUNTIME === "edge") { + await import("./sentry.edge.config"); } } diff --git a/lib/getMembers.ts b/lib/getMembers.ts index f23fbe8..8fc4fe1 100644 --- a/lib/getMembers.ts +++ b/lib/getMembers.ts @@ -18,9 +18,7 @@ export const getMembers = async (): Promise => { // Loop through files and create array of members const members = files.map(async (filename) => { // Get raw markdown - const markdownWithMetadata = fs - .readFileSync(`${memberPath}/${filename}`) - .toString(); + const markdownWithMetadata = fs.readFileSync(`${memberPath}/${filename}`).toString(); // Parse markdown, grab front matter const { data, content } = grayMatter(markdownWithMetadata); @@ -30,23 +28,10 @@ export const getMembers = async (): Promise => { const path = `/members/${slug}`; // Process custom fields - const { - name, - linkedin, - github, - twitter, - website, - added, - affiliation, - level, - countries - } = data; + const { name, linkedin, github, twitter, website, added, affiliation, level, countries } = data; // Parse Markdown - const html = await unified() - .use(remarkParse) - .use(remarkHtml) - .process(content); + const html = await unified().use(remarkParse).use(remarkHtml).process(content); const bio = html.value.toString(); // Return member data @@ -62,7 +47,7 @@ export const getMembers = async (): Promise => { slug, path, bio, - countries + countries, }; }); diff --git a/next.config.js b/next.config.js index 87e2154..b71878a 100644 --- a/next.config.js +++ b/next.config.js @@ -9,40 +9,37 @@ module.exports = nextConfig; const { withSentryConfig } = require("@sentry/nextjs"); -module.exports = withSentryConfig( - module.exports, - { - // For all available options, see: - // https://github.com/getsentry/sentry-webpack-plugin#options - - org: "latina-dev", - project: "latina-dev", - - // Only print logs for uploading source maps in CI - silent: !process.env.CI, - - // For all available options, see: - // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ - - // Upload a larger set of source maps for prettier stack traces (increases build time) - widenClientFileUpload: true, - - // Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. - // This can increase your server load as well as your hosting bill. - // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- - // side errors will fail. - tunnelRoute: "/monitoring", - - // Hides source maps from generated client bundles - hideSourceMaps: true, - - // Automatically tree-shake Sentry logger statements to reduce bundle size - disableLogger: true, - - // Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.) - // See the following for more information: - // https://docs.sentry.io/product/crons/ - // https://vercel.com/docs/cron-jobs - automaticVercelMonitors: true, - } -); +module.exports = withSentryConfig(module.exports, { + // For all available options, see: + // https://github.com/getsentry/sentry-webpack-plugin#options + + org: "latina-dev", + project: "latina-dev", + + // Only print logs for uploading source maps in CI + silent: !process.env.CI, + + // For all available options, see: + // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, + + // Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. + // This can increase your server load as well as your hosting bill. + // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- + // side errors will fail. + tunnelRoute: "/monitoring", + + // Hides source maps from generated client bundles + hideSourceMaps: true, + + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, + + // Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.) + // See the following for more information: + // https://docs.sentry.io/product/crons/ + // https://vercel.com/docs/cron-jobs + automaticVercelMonitors: true, +}); diff --git a/postcss.config.js b/postcss.config.js index 5cbc2c7..12a703d 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,6 +1,6 @@ module.exports = { plugins: { tailwindcss: {}, - autoprefixer: {} - } + autoprefixer: {}, + }, }; diff --git a/sentry.server.config.ts b/sentry.server.config.ts index b21289a..d480dfe 100644 --- a/sentry.server.config.ts +++ b/sentry.server.config.ts @@ -15,5 +15,4 @@ Sentry.init({ // Uncomment the line below to enable Spotlight (https://spotlightjs.com) // spotlight: process.env.NODE_ENV === 'development', - }); diff --git a/styles/variables.css b/styles/variables.css index d40663f..b1b534e 100644 --- a/styles/variables.css +++ b/styles/variables.css @@ -1,11 +1,10 @@ :root { --max-width: 1100px; --border-radius: 8px; - --font-primary: "Latina Light", "Roboto", "Helvetica Neue", Helvetica, Arial, - sans-serif; - --font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", - "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", - "Fira Mono", "Droid Sans Mono", "Courier New", monospace; + --font-primary: "Latina Light", "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif; + --font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", + "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", + "Courier New", monospace; --primary-color: #9e0001; --primary-color-dark: #7d0000; diff --git a/tailwind.config.js b/tailwind.config.js index 13e0a7a..d96806e 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,11 +1,8 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - content: [ - "./app/**/*.{js,ts,jsx,tsx,mdx}", - "./components/**/*.{js,ts,jsx,tsx,mdx}" - ], + content: ["./app/**/*.{js,ts,jsx,tsx,mdx}", "./components/**/*.{js,ts,jsx,tsx,mdx}"], theme: { - extend: {} + extend: {}, }, - plugins: [] + plugins: [], }; diff --git a/types/links.ts b/types/links.ts index 91b049e..fbf7573 100644 --- a/types/links.ts +++ b/types/links.ts @@ -6,5 +6,5 @@ export enum Links { LinkedInPage = "https://www.linkedin.com/company/latina-dev", Slack = "https://latinadev.slack.com", Vercel = "https://vercel.com/?utm_source=latina-dev&utm_campaign=oss", - FormSelfAddMember = "https://forms.fillout.com/t/xARDm8SG6mus" + FormSelfAddMember = "https://forms.fillout.com/t/xARDm8SG6mus", } diff --git a/types/members.ts b/types/members.ts index 9ee1664..5b3331e 100644 --- a/types/members.ts +++ b/types/members.ts @@ -27,5 +27,5 @@ export const exampleMember: MemberInterface = { level: "Individual Contributor", slug: "frances-coronel", path: "/members/frances-coronel", - countries: ["Peru"] + countries: ["Peru"], };