release: v4.1.0

This commit is contained in:
Amruth Pillai
2024-05-05 14:55:06 +02:00
parent 68252c35fc
commit e87b05a93a
282 changed files with 11461 additions and 10713 deletions

View File

@ -25,7 +25,7 @@ export const ContributorsSection = () => {
{loading && (
<div className="mx-auto flex max-w-5xl flex-wrap items-center justify-center gap-3">
{Array(30)
{Array.from({ length: 30 })
.fill(0)
.map((_, index) => (
<motion.div

View File

@ -58,11 +58,8 @@ const Question2 = () => (
</AccordionTrigger>
<AccordionContent className="prose max-w-none dark:prose-invert">
<p>
It's not much honestly.{" "}
<a href="https://pillai.xyz/digitalocean" rel="noreferrer" target="_blank">
DigitalOcean
</a>{" "}
has graciously sponsored their infrastructure to allow me to host Reactive Resume on their
It's not much honestly. <a href="https://pillai.xyz/digitalocean">DigitalOcean</a> has
graciously sponsored their infrastructure to allow me to host Reactive Resume on their
platform. There's only the fee I pay to dependent services to send emails, renew the domain,
etc.
</p>
@ -76,16 +73,14 @@ const Question2 = () => (
<p>
But if you do feel like supporting the developer and the future development of Reactive
Resume, please donate (<em>only if you have some extra money lying around</em>) on my{" "}
<a href="https://github.com/sponsors/AmruthPillai/" rel="noreferrer" target="_blank">
GitHub Sponsors page
</a>
. You can choose to donate one-time or sponsor a recurring donation.
<a href="https://github.com/sponsors/AmruthPillai/">GitHub Sponsors page</a>. You can choose
to donate one-time or sponsor a recurring donation.
</p>
<p>
Alternatively, if you are in the US, or you are a part of a large educational institution or
corporate organization, you can{" "}
<a href="https://opencollective.com/reactive-resume" rel="noreferrer" target="_blank">
<a href="https://opencollective.com/reactive-resume">
support the project through Open Collective
</a>
. We are fiscally hosted through Open Collective Europe, which means your donations and
@ -155,10 +150,10 @@ const Question4 = () => {
{languages.map((language) => (
<a
key={language.id}
target="_blank"
rel="noreferrer"
className="no-underline"
href={`https://crowdin.com/translate/reactive-resume/all/en-${language.editorCode}`}
target="_blank"
rel="noreferrer"
>
<div className="relative bg-secondary-accent font-medium transition-colors hover:bg-primary hover:text-background">
<span className="px-2 py-1">{language.name}</span>
@ -219,19 +214,6 @@ const Question5 = () => (
to OpenAI are also sent directly to their service and does not hit the app servers at all.
</p>
<p>
The policy behind "bring your own key" (BYOK) is{" "}
<a
href="https://community.openai.com/t/openais-bring-your-own-key-policy/14538/46"
target="_blank"
rel="noreferrer"
>
still being discussed
</a>{" "}
and probably might change over a period of time, but while it's available, I would keep the
feature on the app.
</p>
<p>
You are free to turn off all AI features (and not be aware of it's existence) simply by not
adding a key in the Settings page and still make use of all the useful features that

View File

@ -91,7 +91,6 @@ export const FeaturesSection = () => {
width={14}
height={14}
/>
<img src="https://cdn.simpleicons.org/redis" alt="Redis" width={14} height={14} />
</div>
),
title: t`Powered by`,

View File

@ -26,22 +26,18 @@ export const HeroCTA = () => {
);
}
if (!isLoggedIn) {
return (
<>
<Button asChild size="lg">
<Link to="/auth/login">{t`Get Started`}</Link>
</Button>
return (
<>
<Button asChild size="lg">
<Link to="/auth/login">{t`Get Started`}</Link>
</Button>
<Button asChild size="lg" variant="link">
<a href="https://docs.rxresu.me" target="_blank" rel="noopener noreferrer nofollow">
<Book className="mr-3" />
{t`Learn more`}
</a>
</Button>
</>
);
}
return null;
<Button asChild size="lg" variant="link">
<a href="https://docs.rxresu.me" target="_blank" rel="noopener noreferrer nofollow">
<Book className="mr-3" />
{t`Learn more`}
</a>
</Button>
</>
);
};

View File

@ -26,8 +26,6 @@ export const HeroSection = () => (
<Badge>{t`Version 4`}</Badge>
<a
target="_blank"
rel="noreferrer"
href="https://docs.rxresu.me/overview/features"
className={cn(buttonVariants({ variant: "link" }), "space-x-2 text-left")}
>

View File

@ -19,7 +19,9 @@ export const Counter = ({ from, to }: CounterProps) => {
},
});
return () => controls.stop();
return () => {
controls.stop();
};
}, [from, to, isInView]);
return (

View File

@ -9,9 +9,9 @@ type Statistic = {
export const StatisticsSection = () => {
const stats: Statistic[] = [
{ name: t`GitHub Stars`, value: 19500 },
{ name: t`Users Signed Up`, value: 500000 },
{ name: t`Resumes Generated`, value: 700000 },
{ name: t`GitHub Stars`, value: 19_500 },
{ name: t`Users Signed Up`, value: 500_000 },
{ name: t`Resumes Generated`, value: 700_000 },
];
return (

View File

@ -20,7 +20,7 @@ export const TemplatesSection = () => (
transition: {
x: {
duration: 30,
repeat: Infinity,
repeat: Number.POSITIVE_INFINITY,
repeatType: "mirror",
},
},