Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
0b3f84d
patch: package update + client for rabbitmq tasks
neue-dev Feb 16, 2026
e17780b
fix: forms ui doesn't wait for cache to be invalidated
jayylmao Feb 17, 2026
dc129a0
fix: editing profile doesn't save changes
jayylmao Feb 17, 2026
3d0f88f
chore: the `rounded-[0.33em]` disease
anaj00 Feb 18, 2026
9d6c22e
fix: formDocument -> formTemplate and temp fix for useAsyncProcess
neue-dev Feb 18, 2026
09aa265
chore: no wonder shiny text was black
anaj00 Feb 19, 2026
37a5a69
style: make contact options more obvious on forms page with no forms
jayylmao Feb 23, 2026
d672f1b
style: add link to form generation when no forms are in history
jayylmao Feb 23, 2026
2ca05ec
fix case sensitive email and success messages in forgot pw
chua-e Feb 23, 2026
9f72d9b
fix case sensitive email and success messages in forgot pw (#425)
chua-e Feb 23, 2026
188551c
forgot to remove console log
chua-e Feb 23, 2026
1c37063
forgot to remove console log (#426)
chua-e Feb 23, 2026
71f6b54
chore (temp): disable ADMU for now
anaj00 Feb 23, 2026
d0bf849
chore: remove bottom nav bar for mobile verification pages
anaj00 Feb 23, 2026
e07c165
feat: pdf gen (manual sign) works with rabbitmq
neue-dev Feb 23, 2026
50515e6
fix: rm thrown error on fetch client
neue-dev Feb 25, 2026
b839b64
feat: form fillout process client impl for rabbitmq
neue-dev Feb 25, 2026
4227e00
feat: initial impl of client form process state handling
neue-dev Feb 25, 2026
f92f6cb
fix: outdated package (?)
neue-dev Feb 25, 2026
1308e8c
fix: outdated package (2!)
neue-dev Feb 25, 2026
292f375
fix: npm cache clean during gh action
neue-dev Feb 25, 2026
ed6530b
FAH
anaj00 Feb 25, 2026
d8f47f2
Merge branch 'develop' of https://github.com/BetterInternship/Client …
anaj00 Feb 25, 2026
1cbc6e0
fix: posthog deprecated a package
neue-dev Feb 25, 2026
277bd98
feat: added the logic of Submit to BetterInternship if there is anoth…
anaj00 Feb 27, 2026
93075dc
temp: new form flow impl
neue-dev Mar 1, 2026
3441736
feat: link form data to new generate forms page flow
neue-dev Mar 1, 2026
607f621
patch: enable form preview button
neue-dev Mar 1, 2026
3c526d6
patch: enable form preview button
neue-dev Mar 1, 2026
d2b3109
Merge branch 'form-flow-playground' of https://github.com/BetterInter…
neue-dev Mar 1, 2026
372fb2d
feat: trigger specify signing parties after clicking 'sign via better…
neue-dev Mar 1, 2026
cab484b
fix: transition for signing flow
neue-dev Mar 2, 2026
863a6dc
feat: back and forth between form fillout and form gen layout
neue-dev Mar 2, 2026
ec55525
feat: add form history log, remove tabs
neue-dev Mar 2, 2026
be6316a
patch: make the form gen collapsible so it doesnt intrude history
neue-dev Mar 2, 2026
3048505
patch: remove signing party modal
neue-dev Mar 2, 2026
e28e82e
chore: fix qol issues
neue-dev Mar 2, 2026
27f8017
feat: add inputs for recipient emails
neue-dev Mar 2, 2026
cc6055f
patch: next handling of email inputs
neue-dev Mar 2, 2026
df8788f
feat: 3-step flow for signing
neue-dev Mar 2, 2026
04e7e85
fix: change layout to be more consistent with site
neue-dev Mar 2, 2026
e58de35
fix: issues with flow movement between form filler and template list
neue-dev Mar 2, 2026
9f434f2
feat: add confirm step
neue-dev Mar 2, 2026
a698378
feat: do signing and fillout flows
neue-dev Mar 2, 2026
2b5fb27
fix: can't set pay frequency to hour when creating a job
jayylmao Mar 3, 2026
c59dc51
fix: use auth context to conditionally display optional job requirements
jayylmao Mar 3, 2026
db85f82
fix: delete listing button overflows on narrow screens
jayylmao Mar 3, 2026
8e0c7c9
fix: app crash on displaying job details in some instances
jayylmao Mar 3, 2026
d5978f6
feat: add buffer when confirming, make it split pane instead
neue-dev Mar 3, 2026
e1a5431
feat: add currency formatter utility function
jayylmao Mar 3, 2026
18b921d
patch: add loader for next button, lengthen confirm buffer
neue-dev Mar 3, 2026
062adc2
fix: controls overflow off screen for dedicated listing page
jayylmao Mar 3, 2026
7ac0455
feat: link form init / gen with new flow
neue-dev Mar 3, 2026
29e98d2
Form flow playground (#427)
neue-dev Mar 3, 2026
3043ea0
feat: integrated the new form preview
anaj00 Mar 3, 2026
c1a643d
fix: signature, tooltip clipping, wrapping and font scaling on the pr…
anaj00 Mar 3, 2026
4c17fb6
chore: move the tooltip higher
anaj00 Mar 3, 2026
3511409
feat: auto and derived fields now show in the previewer
anaj00 Mar 4, 2026
66b3919
fix: font size unaffected by zoom
anaj00 Mar 4, 2026
4d9aed0
feat: enhance PreviewField type and normalization logic for improved …
anaj00 Mar 4, 2026
57619b1
feat: email validation and submission
neue-dev Mar 4, 2026
34ea04a
chore: state record util
neue-dev Mar 4, 2026
143e742
chore: rm old impl + refactor form process hooks
neue-dev Mar 4, 2026
cef8e99
chore: rm old layout artifacts
neue-dev Mar 4, 2026
3e36d0b
chore: modal cleanup
neue-dev Mar 4, 2026
8d7757c
patch: change pdf preview modal to use framer motion instead
neue-dev Mar 4, 2026
005b864
chore: deprecate old modal impl, clean up modal layout components
neue-dev Mar 5, 2026
c8c1aaf
chore: rm old form layout files, done cleanup modal impl
neue-dev Mar 5, 2026
f79ee25
chore: migrate form preview
neue-dev Mar 5, 2026
7a548c0
chore: separate template list into own component
neue-dev Mar 5, 2026
9ebe47b
chore: cleanup form timeline and form action accordion
neue-dev Mar 5, 2026
e558a45
fix: allow exit animation
neue-dev Mar 5, 2026
5801a42
feat: mobile forms view
neue-dev Mar 5, 2026
748f93e
fix: early return if document.body is undefined
neue-dev Mar 5, 2026
7fb8525
patch: export state record contract
neue-dev Mar 6, 2026
b9c40a1
patch: update timeline to include other emails
neue-dev Mar 6, 2026
41d6ad7
fix: go to forms should go to form templates
neue-dev Mar 6, 2026
4be5e5e
patch: update CTA after initiating form
neue-dev Mar 6, 2026
c555678
fix: remove placeholder email, include first recipient in confirmatio…
neue-dev Mar 6, 2026
734df6e
patch: show timeline when confirming inputs
neue-dev Mar 6, 2026
7978895
fix: confirm before exiting on mobile + exit signing flow on mobile l…
neue-dev Mar 6, 2026
9e8c76a
chore: simplify up preview shape + fix for showing autosave fields th…
anaj00 Mar 6, 2026
b8482f6
Merge branch 'develop' of https://github.com/BetterInternship/Client …
anaj00 Mar 6, 2026
7d5ff25
feat: enhance FormDashboard and FormTemplatesList UI with improved la…
anaj00 Mar 6, 2026
13d5768
chore: adjusted padding
anaj00 Mar 6, 2026
69d8f9e
feat: update FormActionAccordion and FormActionButtons for improved l…
anaj00 Mar 6, 2026
fc07942
chore: removed the top header on the formsigninglayout, integrated it…
anaj00 Mar 6, 2026
534d3b1
fix: adjust layout and styling in FormSigningLayout and FormFillerRen…
anaj00 Mar 6, 2026
9bf819e
fix: adjust padding and styling in FormSigningLayout and TimelineItem…
anaj00 Mar 6, 2026
79a915c
fix: remove form label on mobile
neue-dev Mar 6, 2026
e30f92f
feat: enhance date handling in preview model; add utility functions f…
anaj00 Mar 8, 2026
6fb2f2c
feat: add mobileFullscreen option to modal components
anaj00 Mar 11, 2026
0722348
fix: improve button layout and responsiveness for mobile in FormSigni…
anaj00 Mar 11, 2026
4b7503f
fix: remove unused state and effect in FormSubmissionSuccessModal; ad…
anaj00 Mar 11, 2026
2ac40d4
feat: enhance FormPreviewPdfDisplay to support dynamic scaling based …
anaj00 Mar 11, 2026
1916438
fix: update handleNavigateToForms to close specific modal instead of …
anaj00 Mar 11, 2026
7f86ffc
fix: update autoScrollToSelectedField logic to prevent scrolling on m…
anaj00 Mar 11, 2026
aabe871
fix: make pdf and form filler 50/50 in size
anaj00 Mar 11, 2026
805ac84
feat: turn confirm into a checkbox instead
neue-dev Mar 11, 2026
7f7595e
feat: make sure 'student email' will not come from someone else + cle…
neue-dev Mar 11, 2026
34321e9
fix: make mobile flow have steps to preview/clarify pdf
neue-dev Mar 11, 2026
50f7ef3
fix: typo suibmit
neue-dev Mar 12, 2026
e53d7ef
refactor: replace context bridges with providers in FormDashboard com…
anaj00 Mar 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/fork-sync-trigger-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ jobs:
with:
node-version: '20'

- name: Clean npm cache
run: npm cache clean --force

- name: Install Dependencies
run: npm i --legacy-peer-deps

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ npm run dev
## Jest Testing
```bash
npm run test
```
```
16 changes: 0 additions & 16 deletions app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,6 @@
}
}

.shiny-text {
background: linear-gradient(
90deg,
#ffd700 0%,
#fff44f 25%,
#ffeb3b 50%,
#fff44f 75%,
#ffd700 100%
);
background-size: 200% auto;
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: shiny 3s linear infinite;
}

@layer base {
:root {
--background: 0 0% 100%;
Expand Down
8 changes: 4 additions & 4 deletions app/hire/forgot-password/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@ const ForgotPasswordForm = ({}) => {
setMessage("");

try {
const r = await EmployerUserService.requestPasswordReset(email);
const r = await EmployerUserService.requestPasswordReset(email.toLowerCase());

// @ts-ignore
setMessage(r.message);
} catch (err: any) {
setError(err.message ?? "Something went wrong. Please try again later.");
setError(err.response?.data?.message ?? err.message ?? "Something went wrong. Please try again later.");
} finally {
setIsLoading(false);
}
Expand All @@ -75,12 +75,12 @@ const ForgotPasswordForm = ({}) => {
<HeaderText>Reset password</HeaderText>
</div>
{error && (
<div className="mb-4 p-3 bg-red-50 border border-red-200 rounded-lg">
<div className="mb-2 p-3 bg-red-50 border border-red-200 rounded-lg">
<p className="text-sm text-red-600 justify-center">{error}</p>
</div>
)}
{message && (
<div className="mb-4 p-3 bg-green-50 border border-green-200 rounded-lg">
<div className="mb-2 p-3 bg-green-50 border border-green-200 rounded-lg">
<p className="text-sm text-green-600 justify-center">{message}</p>
</div>
)}
Expand Down
2 changes: 1 addition & 1 deletion app/hire/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import Head from "next/head";
import AllowLanding from "./allowLanding";
import { ConversationsContextProvider } from "@/hooks/use-conversation";
import { PocketbaseProvider, usePocketbase } from "@/lib/pocketbase";
import { ModalProvider } from "@/components/providers/ModalProvider";
import { ModalProvider } from "@/components/providers/modal-provider/ModalProvider";
import { NotificationListener } from "./notification-listener";

const baseUrl =
Expand Down
72 changes: 48 additions & 24 deletions app/hire/login/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ import { useAuthContext } from "../authctx";
import { cn } from "@/lib/utils";
import { useAppContext } from "@/lib/ctx-app";

import {
FormInput,
} from "@/components/EditForm";
import { FormInput } from "@/components/EditForm";

import { Card } from "@/components/ui/card";
import { MailCheck, TriangleAlert, User } from "lucide-react";
Expand All @@ -22,7 +20,7 @@ export default function LoginPage() {
<Suspense fallback={<Loader>Loading login...</Loader>}>
<LoginContent />
</Suspense>
)
);
}

function LoginContent() {
Expand Down Expand Up @@ -92,18 +90,15 @@ function LoginContent() {
}
};


return (
<AnimatePresence>
<motion.div
<motion.div
initial={{ scale: 0.98, filter: "blur(4px)", opacity: 0 }}
animate={{ scale: 1, filter: "blur(0px)", opacity: 1 }}
transition={{ duration: 0.3, ease: "easeOut" }}
className={cn(
"flex justify-center py-12 pt-12 h-fit overflow-y-auto",
isMobile
? "px-2"
: "px-6"
isMobile ? "px-2" : "px-6",
)}
>
<div className="flex items-center w-full max-w-2xl h-full">
Expand All @@ -115,23 +110,30 @@ function LoginContent() {
</div>
{/* Error Message */}
{error && (
<div className={cn(
"flex gap-2 items-center mb-4 p-3 bg-destructive/10 text-destructive border border-destructive/50 rounded-[0.33em]",
isMobile ? "flex-col items-start" : ""
)}>
<div
className={cn(
"flex gap-2 items-center mb-4 p-3 bg-destructive/10 text-destructive border border-destructive/50 rounded-[0.33em]",
isMobile ? "flex-col items-start" : "",
)}
>
<TriangleAlert size={isMobile ? 24 : 20} />
<span className="text-sm justify-center">{error}</span>
</div>
)}

{/* check email message on successful register */}
{status === "success" && !error && (
<div className={cn(
"flex gap-2 items-center mb-4 p-3 bg-supportive/10 text-supportive border border-supportive/50 rounded-lg",
isMobile ? "flex-col items-start" : ""
)}>
<div
className={cn(
"flex gap-2 items-center mb-4 p-3 bg-supportive/10 text-supportive border border-supportive/50 rounded-[0.33em]",
isMobile ? "flex-col items-start" : "",
)}
>
<MailCheck size={isMobile ? 24 : 20} />
<span className="text-sm justify-center">Registration successful. Please check your email for the password.</span>
<span className="text-sm justify-center">
Registration successful. Please check your email for the
password.
</span>
</div>
)}

Expand All @@ -154,19 +156,41 @@ function LoginContent() {
required
/>
<div className="flex justify-between items-center w-full text-sm text-gray-500">
<a className="text-blue-600 hover:text-blue-800 underline font-medium" href="/forgot-password">Forgot password?</a>
<Button
type="submit"
disabled={isLoading}
<a
className="text-blue-600 hover:text-blue-800 underline font-medium"
href="/forgot-password"
>
Forgot password?
</a>
<Button type="submit" disabled={isLoading}>
{isLoading ? "Logging in..." : "Log in"}
</Button>
</div>
<span className="text-sm text-gray-500">
Don't have an account? <a className="text-blue-600 hover:text-blue-800 underline font-medium" href="/register">Register here.</a>
Don't have an account?{" "}
<a
className="text-blue-600 hover:text-blue-800 underline font-medium"
href="/register"
>
Register here.
</a>
</span>
<span className="text-muted-foreground text-sm">
Need help? Contact us at <a href="tel://09276604999" className="text-blue-600 hover:text-blue-800 underline font-medium">0927 660 4999</a> or on <a href="viber://add?number=639276604999" className="text-blue-600 hover:text-blue-800 underline font-medium">Viber</a>.
Need help? Contact us at{" "}
<a
href="tel://09276604999"
className="text-blue-600 hover:text-blue-800 underline font-medium"
>
0927 660 4999
</a>{" "}
or on{" "}
<a
href="viber://add?number=639276604999"
className="text-blue-600 hover:text-blue-800 underline font-medium"
>
Viber
</a>
.
</span>
</div>
</form>
Expand Down
Loading