feat(app): implement objective summary step in contribution flow - #166
Closed
Carter907 wants to merge 10 commits into
Closed
feat(app): implement objective summary step in contribution flow#166Carter907 wants to merge 10 commits into
Carter907 wants to merge 10 commits into
Conversation
Signed-off-by: Carter <speers.carter@gmail.com>
…tion Signed-off-by: Carter <speers.carter@gmail.com>
…etails Signed-off-by: Carter <speers.carter@gmail.com>
Signed-off-by: Carter <speers.carter@gmail.com>
andyrodrigues30
requested changes
Jul 22, 2026
Signed-off-by: Carter <speers.carter@gmail.com>
andyrodrigues30
requested changes
Jul 23, 2026
| publishText="Submit" | ||
| /> | ||
|
|
||
| <Separator className="mb-8 bg-border" /> |
Collaborator
There was a problem hiding this comment.
Remove this (it already exists in the StepperActionHeader)
| <Separator className="mb-8 bg-border" /> | ||
|
|
||
| <div className="mx-auto mt-8 flex w-full max-w-3xl flex-col gap-12"> | ||
| <Card className="rounded-md bg-background shadow-none"> |
Collaborator
There was a problem hiding this comment.
Display this card of "Objective" information like this the following objective card (that way we know what the actual objective card will look like. This card should take up the full width.
Add the tags under the username and created at date.
You don't need the "Not Started" status.
For the stats in the footer - it would be 3 stats:
- Duration (use M for minutes)
- Sub-objectives (instead of target guides
- Guides (this is the total number of guides)
|
|
||
| <div className="space-y-6"> | ||
| <h3 className="px-1 text-lg font-semibold tracking-tight"> | ||
| Curriculum Paths |
Collaborator
There was a problem hiding this comment.
Change to "Sub-objectives"
| key={idx} | ||
| className="flex flex-col gap-2 md:flex-row md:items-center md:gap-4" | ||
| > | ||
| <div className="flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-badge-border bg-badge font-mono text-xs font-semibold text-badge-foreground"> |
Collaborator
| </span> | ||
| {getGuideDuration(stepSlug) > 0 && ( | ||
| <span className="shrink-0 font-mono text-[10px] text-muted-foreground uppercase"> | ||
| {getGuideDuration(stepSlug)} mins |
Collaborator
There was a problem hiding this comment.
change "mins" to "m"
Signed-off-by: Carter <speers.carter@gmail.com>
Carter907
force-pushed
the
feat/objective-summary-step
branch
from
July 24, 2026 06:27
78485e8 to
b08bd39
Compare
- Persist objective contribution form state in sessionStorage to survive page reloads. - Decouple PreviewObjectiveCard from ObjectiveCard to safely refine preview styling. - Center arrows and tighten featured guide graphs on wide screens. - Append summaries and subject tags to subobjective target cards. - Synchronize featured guide graph with user's explicitly selected featured guide. - Format duration as 'min' instead of 'M'. Signed-off-by: Carter <speers.carter@gmail.com>
Contributor
Author
Contributor
Author
13 tasks
Carter907
added a commit
to Carter907/bluelearn
that referenced
this pull request
Jul 26, 2026
Replace static mock data with backend service calls - Implemented add and removal of objective targets to objective-revision.service.ts. - Fetch walkthrough edges dynamically from /:slug/walkthrough API. - Placeholder Preview page based on PR bluelearn-org#166 - Added 'Save Draft' button for drafting LOs. Signed-off-by: Carter <speers.carter@gmail.com>
Carter907
added a commit
to Carter907/bluelearn
that referenced
this pull request
Jul 26, 2026
Replace static mock data with backend service calls - Implemented add and removal of objective targets to objective-revision.service.ts. - Fetch walkthrough edges dynamically from /:slug/walkthrough API. - Placeholder Preview page based on PR bluelearn-org#166 - Added 'Save Draft' button for drafting LOs. Signed-off-by: Carter <speers.carter@gmail.com>
Carter907
added a commit
to Carter907/bluelearn
that referenced
this pull request
Jul 26, 2026
Replace static mock data with backend service calls - Implemented add and removal of objective targets to objective-revision.service.ts. - Fetch walkthrough edges dynamically from /:slug/walkthrough API. - Placeholder Preview page based on PR bluelearn-org#166 - Added 'Save Draft' button for drafting LOs. Signed-off-by: Carter <speers.carter@gmail.com>
Collaborator
|
Closing this PR because it's changes were included in PR 207. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Summary
ObjectiveDetailsstep to include a subjects Combobox, allowing curators to tag their objective with multiple subjects (which are displayed on the summary page).@stepperize/reactvalidation pattern in both theObjectiveDetailsand Order Guides steps. Instead of silently locking the "Next" button when a form is incomplete, the UI now intercepts the click, shows a clear error toast, and dynamically applies Shadcn's destructive styling (border-destructive ring-destructive) to any missing fields.closes #157
closes #164
Type of change
Verification
pnpm -r typecheckpassespnpm -r buildpasses