Render object references in hint steps as tappable references
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 72/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- frontend
Research direction
Start with apps/web/src/components/hintModal.ts and apps/web/src/screens/game.ts, then compare how apps/web/src/components/transcript.ts renders references using apps/web/src/logic/text.ts. Check the content-pack rules in docs/spec/content-pack.md, then run the relevant unit or end-to-end tests and apps/web/test/styles.test.ts. Done means present objects open their action sheet from a hint, absent objects remain plain text, and inserted text stays text-only.
Written by the indexing model from the issue text.
Description
Context
Hint steps may contain {object_id} and {object_id|text} references, like all pack text. The hint sheet strips them to plain names (stepText uses stripMarkup in apps/web/src/screens/game.ts), so players cannot tap the object a hint talks about, unlike in the story text.
Scope
- Render hint steps with the same span rendering as the transcript, references as buttons.
- Tapping a reference closes the hint sheet and opens the object's action sheet.
- References to objects that are not present render as plain text, so no action is offered on an absent object.
- Keep the
langattribute of the pack language.
Acceptance criteria
- In a test fixture, a hint step with
{red_book}shows a tappable "red book" when the book is present; tapping it opens its action sheet. - A reference to an absent object renders as plain text.
- A unit or end-to-end test covers both cases.
- Text is still inserted as text nodes only (apps/web/test/styles.test.ts passes).
References
- apps/web/src/components/hintModal.ts
- apps/web/src/screens/game.ts
- apps/web/src/components/transcript.ts
- apps/web/src/logic/text.ts
- docs/spec/content-pack.md (sections 4 and 13)
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 28m
- Merged PRs (30d)
- 2
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from nullthrone/lexvm
-
area: web good first issue priority: low type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
nullthrone/lexvm#49 ·
-
area: infra good first issue priority: low type: chore
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
nullthrone/lexvm#41 ·
-
area: engine good first issue priority: low type: feature
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
nullthrone/lexvm#27 ·
-
area: web priority: low type: research
Difficulty 5/5 Over a week Newbie friendliness 35/100
nullthrone/lexvm#63 ·
-
area: infra area: web priority: medium type: chore
Difficulty 5/5 Over a week Newbie friendliness 38/100
nullthrone/lexvm#62 ·
All issues in nullthrone/lexvm
Similar issues
-
area: image-engine bug priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
snapotter-hq/SnapOtter#3885 ·
Maintainers usually reply within 1 day
-
Mend: dependency security vulnerability
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 3 days
-
pending triage
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
bug P3 UI/UX
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
openclaw/openclaw#182077 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day