Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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: 2 additions & 1 deletion .claude/hooks/prevent-force-push.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ if [[ -z "$cmd" ]]; then
exit 0
fi

if [[ "$cmd" =~ git\ push.*(-f|--force) ]]; then
# Match -f or --force as standalone flags (preceded by space)
if [[ "$cmd" =~ git\ push.*\ (-f|--force)(\ |$) ]]; then
echo "Force push is not allowed" >&2
exit 2
fi
Expand Down
174 changes: 0 additions & 174 deletions packages/shared/src/features/opportunity/mockData.ts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,16 @@ import {
RecruiterProgress,
RecruiterProgressStep,
} from '../../../components/recruiter/Progress';
import type { OpportunityPreviewContextType } from '../../opportunity/context/OpportunityPreviewContext';
import { OpportunityPreviewProvider } from '../../opportunity/context/OpportunityPreviewContext';
import { AnalyzeContent } from '../../opportunity/components/analyze/AnalyzeContent';

export type OnboardingViewProps = {
mockData: OpportunityPreviewContextType;
loadingStep: number;
};

export const OnboardingView = ({
mockData,
loadingStep,
}: OnboardingViewProps): ReactElement => {
export const OnboardingView = (): ReactElement => {
return (
<OpportunityPreviewProvider mockData={mockData}>
<OpportunityPreviewProvider mockData={{}}>
<div className="pointer-events-none flex flex-1 flex-col blur-sm">
<RecruiterHeader />
<RecruiterProgress activeStep={RecruiterProgressStep.AnalyzeAndMatch} />
<AnalyzeContent loadingStep={loadingStep} />
<AnalyzeContent loadingStep={0} />
</div>
</OpportunityPreviewProvider>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,20 +74,20 @@ const RecruiterFullscreenLayoutInner = ({
}

return (
<PendingSubmissionProvider>
<div className="flex min-h-screen flex-col antialiased">
<InAppNotificationElement />
<PromptElement />
<Toast autoDismissNotifications={autoDismissNotifications} />
{children}
</div>
</PendingSubmissionProvider>
<div className="flex min-h-screen flex-col antialiased">
<InAppNotificationElement />
<PromptElement />
<Toast autoDismissNotifications={autoDismissNotifications} />
{children}
</div>
);
};

const GetLayout = (page: ReactNode): ReactNode => {
return (
<RecruiterFullscreenLayoutInner>{page}</RecruiterFullscreenLayoutInner>
<PendingSubmissionProvider>
<RecruiterFullscreenLayoutInner>{page}</RecruiterFullscreenLayoutInner>
</PendingSubmissionProvider>
);
};

Expand Down
36 changes: 2 additions & 34 deletions packages/webapp/pages/recruiter/index.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
import type { ReactElement } from 'react';
import React, { useCallback, useEffect, useRef, useState } from 'react';
import React, { useCallback, useEffect, useRef } from 'react';
import { useRouter } from 'next/router';
import { useQuery } from '@tanstack/react-query';
import { useLazyModal } from '@dailydotdev/shared/src/hooks/useLazyModal';
import { LazyModal } from '@dailydotdev/shared/src/components/modals/common/types';
import type { PendingSubmission } from '@dailydotdev/shared/src/features/opportunity/context/PendingSubmissionContext';
import { usePendingSubmission } from '@dailydotdev/shared/src/features/opportunity/context/PendingSubmissionContext';
import { mockOpportunityPreviewData } from '@dailydotdev/shared/src/features/opportunity/mockData';
import type { OpportunityPreviewContextType } from '@dailydotdev/shared/src/features/opportunity/context/OpportunityPreviewContext';
import { useAuthContext } from '@dailydotdev/shared/src/contexts/AuthContext';
import { getOpportunitiesOptions } from '@dailydotdev/shared/src/features/opportunity/queries';
import {
Expand All @@ -18,28 +16,6 @@ import { DashboardView } from '@dailydotdev/shared/src/features/recruiter/compon
import { OnboardingView } from '@dailydotdev/shared/src/features/recruiter/components/OnboardingView';
import { getLayout } from '../../components/layouts/RecruiterFullscreenLayout';

const useLoadingAnimation = (isActive: boolean) => {
const [loadingStep, setLoadingStep] = useState(0);

useEffect(() => {
if (!isActive) {
setLoadingStep(0);
return undefined;
}

const timers = [
setTimeout(() => setLoadingStep(1), 800),
setTimeout(() => setLoadingStep(2), 1600),
setTimeout(() => setLoadingStep(3), 2400),
setTimeout(() => setLoadingStep(4), 3200),
];

return () => timers.forEach(clearTimeout);
}, [isActive]);

return loadingStep;
};

function RecruiterPage(): ReactElement {
const router = useRouter();
const { openModal, closeModal } = useLazyModal();
Expand All @@ -53,10 +29,6 @@ function RecruiterPage(): ReactElement {
...getOpportunitiesOptions(),
enabled: !!user,
});
const [mockData, setMockData] = useState<OpportunityPreviewContextType>({});
const [isAnimating, setIsAnimating] = useState(false);
const loadingStep = useLoadingAnimation(isAnimating);

const navigateToAnalyze = useCallback(() => {
closeModal();
router.push(`/recruiter/new/analyze`);
Expand All @@ -70,10 +42,6 @@ function RecruiterPage(): ReactElement {
closeModal();

if (!user) {
// Show mock data to make it look like processing is happening,
// encouraging the user to sign up
setMockData(mockOpportunityPreviewData);
setIsAnimating(true);
openModal({
type: LazyModal.RecruiterSignIn,
props: {
Expand Down Expand Up @@ -182,7 +150,7 @@ function RecruiterPage(): ReactElement {
}

// Onboarding flow for new users (with blur effect)
return <OnboardingView mockData={mockData} loadingStep={loadingStep} />;
return <OnboardingView />;
}

RecruiterPage.getLayout = getLayout;
Expand Down