- deps: scoobie 18.1.2 -> 19.0.0 (#1230)
- deps: pigeon-maps ^0.22.0 (#1224)
- Add support for passing in context into components (#1192)
- LocationSelectMap: Fix Braid 33 compatibility (#1185)
- Remove deprecated
dividers
in Braid components (#1172)
- deps: uuid ^10.0.0 (#1132)
- Move @types/autosuggest-highlight to dependencies (#1126)
- Update map selection icon to be a globe (#1104) Bump minimum braid-design-system version to 32.17.0
- Clarify wingman ecosystem (#1098)
- deps: use-debounce ^10.0.0 (#1074)
- LocationSuggest: Fix bug preventing component from clearing on hirer change (#1019)
- LocationSuggest: Reset on hirer change (#1016)
- SalaryDetails: Update state fields on empty strings (#1009)
- Align with latest linting rules (#981)
- fix: Add currency data to mock location queries (#973)
-
QuestionnaireBuilder: Handle
onChange
type change in[email protected]
(#964)See react-hook-form/react-hook-form#10342 for more information.
-
SalaryDetails: Query pay types and currencies (#959)
Breaking changes:
SalaryDetails
now requiresschemeId
to be passed in- The
onBlur
prop will now returnbasisCode
andintervalCode
for the keypayType
instead ofbasis
,interval
andpayType
- Use sku 12 (#947)
- Run codegen (#953)
- SalaryDetails: Support APAC (#935)
- LocationSuggest: Call
onClear
(#932)
- package: Use consistent type imports and exports (#928)
-
Fix compilation error (#923)
GraphQLError: Syntax Error: Unterminated string.
- Add positionProfile input into jobCategories query (#917)
- deps: braid-design-system 32.3.0 (#912)
- Align validation messaging with recommendations (#896)
- deps: use-debounce ^9.0.0 (#872)
- QuestionnaireBuilder: Use
MenuItem
icon slot (#856)
- Pass Apollo client to LocationSelectMap in LocationSuggest (#840)
- LocationSelectMap: Dismiss suggestions on select (#838)
- LocationSelectMap: Add new component (#834) LocationAutosuggest: Add 'Select on map' feature
- deps: uuid ^9.0.0 (#835)
-
Use standard
icon
slot for buttons (#822)Notably, this moves the "Detect location" icon to precede the button label.
- prettyPrintWithoutTypename: Export new function (#812)
- SeekApiResponse: Export new component (#812)
- JobCategoryLookup, LocationLookup, LocationSuggest: Fix incorrect ordering of breadcrumbs (#796)
- LocationSuggest: Support
showBreadcrumbs
prop (#794)
- Support React 18 typings (#782)
- JobCategoryLookup: Add component (#772)
- LocationLookup: Add component (#776)
- deps: use-debounce ^8.0.0 (#771)
- BrandSelect: Support
hideLabel
property (#767)
- JobCategorySelect, JobCategorySuggest: Support custom
label
text (#763)
- LocationSuggest: Mark
client
as optional (#764)
- BrandSelect: Trigger
onSelect
when preselecting the first brand (#762)
- BrandSelect: Preselect the first brand (#738)
- BrandSelect: Refine messaging when there are no brands (#732)
- MockLocationSuggest: Fix GitHub source path (#730)
- SalaryDetails: Fix "commission" typo (#703)
- GraphQL 16 (#699)
-
QuestionnaireForm: Render single-select questions with >5 choices as a dropdown (#691)
This matches existing behaviour of SEEK's native apply form.
- QuestionnaireBuilder: Limit response choices to 99 (#693)
- Remove unused 'value' prop from JobCategorySuggest (#671)
- Stop auto-selecting a highly-recommended category in JobCategorySuggest (#669)
- Upgrading Braid to 31.0.0 (#665)
-
LocationSuggest: Refactor to use functional queries (#662)
This avoids throwing
AbortError
while usingLocationSuggest
in development mode
-
JobCategorySuggest: Don't lose selected job category on re-render (#658)
If the user selects a job category their selection will now be preserved when the component re-renders.
-
JobCategorySuggest: Don't rerender on no-op props changes (#656)
This avoids re-querying the SEEK API and re-displaying suggestions unless there's a meaningful change to our props.
- MockSpecifiedPersonForm: Add wrapper around
SpecifiedPersonForm
with Storybook & GitHub button links (#627)
-
apolloTypePolicies: Fix
webhookRequestsForSubscription
type policy (#631)This was not including the
subscriptionId
as a key which would cause request pages to be cached cross-subscription.
- SpecifiedPersonForm: Set input types for email & phone fields (#629)
- Update wording for pay range (#625)
- SpecifiedPersonForm: Wrap "Add contact" button in
Actions
(#623)
- SpecifiedPersonForm: Show name components on the same row on desktop (#621)
- MockSalaryDetails: Increase spacing on mock component actions (#619)
- Mock*: Control "View on GitHub" links with
showStorybookAction
(#617)
- Remove placeholder for salary description (#615)
- Add interactive salary component (#611)
- Add character limit to salary description (#614)
-
MockComponents: Add GitHub links to mock component actions (#609)
The existence of Wingman is still a bit mysterious. This adds an explicit link from our
MockComponentActions
to the relevant directory on GitHub.
- JobCategorySuggest: Auto-select first job category suggestion (#602)
- 1f9ca96: Fix linking line being hidden for job category suggest
- df4085c: Align job category select component to UX guide
- a236b31: LocationSuggest: Update detect location button copy to align with UX guide
- 208ffa9: LocationSuggest: Fix location suggest and nearest location error messages
-
ca3d0a5: Update BrandSelect props
- Change
onSelect
to optional - Add
onBrandingQueryResponse
callback to return SEEK API Response - Add
showCopyableOid
flag
- Change
- 8b6fb60: BrandSelect: Avoid FOUC when loading images in Firefox
- 470428c: BrandSelect: Add component
- 0b6826a: Work around type error in
react-hook-form
resolver
-
77f6e22: QuestionnaireBuilder: Make question choice input value non-null
In the SEEK API
ApplicationQuestionChoiceInput.value
is non-null whileApplicationQuestionChoice.value
is nullable.Our choice input Runtype had this as nullable which is incorrect.
-
df243ea: apolloTypePolicies:: Disable infinite scrolling opinions by default
Our Apollo type policy was imported from an internal repository that consistently uses infinitely scrolled lists to display paginated data. However, this makes a number of assumptions about how the data is used:
-
It assumes that the data should be flipped in reverse pagination so the oldest data appears first. When paginating forwards and backwards using a fixed page size this causes the data to flip when paginating backwards which is unexpected.
-
It expects data to always be appended in the same direction which isn't true for page-based pagination.
This turns
apolloTypePolicies
in to a function that now takes apaginationPolicy
property. By default this isconservative
which behaves the same way raw GraphQL queries would. This can be changed toinfinite-scroll
to opt-in to the previous behaviour. -
-
4f47c07: LocationSuggest: Remove no-op client spreads
-
367d0ba: apolloTypePolicies: Add Apollo type policies for ontologies
This enables safely caching locations & job categories when they're directly queried.
-
f119f68: apolloTypePolicies: Add additional Apollo type policies
This adds a policy for
ApplicationQuestionnaire
and objects that are only accessible with a partner token. -
5d1ee4c: JobCategorySelect, JobCategorySuggest, LocationSuggest: Rationalise fetch policies
This removes an explicit fetch policy except for the realtime suggestion queries.
This can cause problems if you're not using an appropriate cache policy for the SEEK API. You can either use our
apolloTypePolicies
or set a default cache policy ofno-fetch
for theclient
you pass to the component.
-
b422dc0: deps: Move
graphql
to a peer dependencyIf your project does not already include
graphql@15
as a direct dependency it needs to be added.
-
f5b3df1: apolloTypePolicies: Add experimental Apollo client type policies
This should enable cached pagination to work correctly against the SEEK API.
- f5ffa36: MockAdSelectionFallback: Add component
- f5ffa36: AdSelectionFallback: Forward ref
- 3104e9c: QuestionnaireQueryInput: Fix rendering GraphQL query input validation errors
- 5292c07: AdSelectionFallback: Add component
- 8de368c: QuestionnaireBuilder: Remove divider between components
-
dfa8c0a: QuestionnaireBuilder: Remove width constraint
This component no longer bundles its own width constraint. You can wrap it in a standard Braid ContentBlock to restore the previous behaviour.
+ import { ContentBlock } from 'braid-design-system'; + <ContentBlock> <QuestionnaireBuilder /> + </ContentBlock>
-
dfa8c0a: QuestionnaireBuilder: Remove Braid reset
This component no longer imports the Braid reset itself, which was unintended behaviour. You should be importing this before BraidProvider in your app:
+ import 'braid-design-system/reset'; import { BraidProvider } from 'braid-design-system';
-
dfa8c0a: QuestionnaireBuilder: Add
wrapper
propThis component no longer renders a Card wrapper around its children by default. This “unwrapped” default state can be useful when nested inside a component that manages its own space, like a Dialog or Drawer.
You can restore the previous behaviour by setting the prop to its built-in
card
preset, though note that this defaults to rounded corners:- <QuestionnaireBuilder /> + <QuestionnaireBuilder wrapper="card" />
-
39c1907: deps: Require Braid 30.4+ and Scoobie 9+
-
dfa8c0a: QuestionnaireBuilder: Default
showGraphqlOutput
to falseYou can restore the previous behaviour by setting the prop:
- <QuestionnaireBuilder /> + <QuestionnaireBuilder showGraphqlOutput />
-
dfa8c0a: QuestionnaireBuilder: Make form preview more compact
This more closely aligns with SEEK's native apply form in production.
-
23d6e1d: QuestionnaireCreateInput: Remove type
A similar type can be derived via component props:
import { ComponentProps } from 'react'; import { QuestionnaireBuilder } from 'wingman-fe'; type Input = ComponentProps<typeof QuestionnaireBuilder>['graphqlInput'];
-
23d6e1d: FormBuilderQueryInput: Rename to QuestionnaireQueryInput
- import { FormBuilderQueryInput } from 'wingman-fe'; + import { QuestionnaireQueryInput } from 'wingman-fe';
-
23d6e1d: QuestionnaireQueryOutput: Add component
This can be used to provide the GraphQL mutation and variables corresponding to a built questionnaire.
-
7d0480b: MockJobCategorySelect, MockJobCategorySuggest, MockLocationSuggest: Add components
These can be used to provide an interactive preview of each component without a live connection to the SEEK API.
-
7d0480b: ApolloMockProvider: Add component
This can be used to supply custom GraphQL resolvers to a component. The provider is automatically seeded with the GraphQL
typeDefs
of the SEEK API. -
191963f: MockJobCategorySelect, MockJobCategorySuggest, MockLocationSuggest: Add
showStorybookAction
propThis can be used to toggle a deep link into Storybook.
- ffedfbb: JobCategorySelect: Collapse columns on mobile
- ffedfbb: QuestionnaireBuilder: Sentence case headings
- ffedfbb: QuestionnaireBuilder: Collapse columns on mobile
- ffedfbb: LocationSuggest: Collapse columns on mobile
- 9163efa: pkg: Exclude test files
- 0200fc0: deps: Remove
content-disposition
- 4dc8f49: Example: Remove placeholder component
- 4b8c216: QuestionnaireBuilder: Drop requirement for Node.js
Buffer
polyfill
- 034b907: JobCategorySelectInput: Support loading an initial category
- 9b8b8c4: LocationSuggestInput: Support loading an initial location
- 3072d56: JobCategorySelect: Require
label
prop
- 2ecd8d7: QuestionnaireBuilder: Make questionnaire builder's GraphQL dump optional
- 34f117b: Update for Braid 30.3
- 2ab6363: Update apollo client to 3.4.1
- 2aeb109: Remove
ssr
flag from graphql queries
- b439228: Add 'Other' as a suggested job category option which triggers the job category select list
- 261929c: Remove detect error messaging on successful location query
-
693f7e7: JobCategorySelect: Provide job category node type
Job posting in ANZ requires a child category for both pricing & posting.
Pass back the category node type (
parent
orchild
) so we can validate we have the right type of category. For example, we could block posting until the user has selected achild
.
- c390fd2: JobCategorySelect: Don't select
parent
injobCategories
query
- 05a28e8: deps: Require Scoobie 7
- 05a28e8: deps: Require React 17
- 05a28e8: deps: Require Braid 30
- 22ecce3: QuestionnaireBuilder: Improve accessibility of preferred option checkbox
- 22ecce3: deps: Require Braid 29.32+
- 0e31cd6: QuestionnaireBuilder: Fix TypeScript mismatches
- ec391a6: QuestionnaireBuilder: Ensure question options are unique and non-empty
- bb2ed17: QuestionnaireBuilder: Align privacy consent validation messages
- bdce19a: QuestionnaireBuilder: Remove custom flexbox usage
- 27c9847: QuestionnaireBuilder: Validate question text and options
- 0a5c5eb: QuestionnaireBuilder: Autofocus option field after adding one
- 6841ee0: deps: runtypes ^6.3.0
- c6213f7: Run codegen for
AddressInput
changes
- be620ff: QuestionnaireBuilder: Render custom privacy consent prompt
- f701f01: JobCategorySelect, JobCategorySuggest: Clean up job category GraphQL queries
-
a59f68d: JobCategorySelect, JobCategorySuggest, LocationSuggest: Improve error messagging
-
a59f68d: JobCategorySuggest: Remove unintentional bottom spacing
-
a59f68d: LocationSuggest: Fix detect button alignment
This ensures the detect button stays aligned with the autosuggest field when the
message
orreserveMessageSpace
prop is set. -
a59f68d: JobCategorySelect, JobCategorySuggest, LocationSuggest: Improve
message
andreserveMessageSpace
alignment and handling
- 4ff7174: JobCategorySelect, QuestionnaireBuilder: Shorten form placeholders
- 5286f8c: Ensure props are not overwritten
- 0368a0d: Update schema codegen
- 61d0683: QuestionnaireBuilder: Require privacy consent description field
- 7e1e1b0: deps: react-hook-form ^7.0.0
- 730b9c6: deps: runtypes ^5.2.0
- eb90de5: fix: use-debounce ^6.0.0
-
439412b: deps: Drop
@hookform/resolvers
,@types/yup
,yup
@hookform/resolvers
has broken imports and types on the latest channel. We can save some heartache and bytes by replacing all of these dependencies with around 20 lines of code. This fixes these mysterious build errors:ERROR in Cannot use import statement outside a module
- a4c4694: deps: Require Braid v29.26
- a4c4694: deps: Require Scoobie v5
- a4c4694: LocationSuggest, QuestionnaireBuilder: Use new Braid button variants
- 75dea5a: QuestionnaireBuilder: Use Braid's TextLinkButton
- f095054: JobCategorySuggest: Forward
name
prop
- f967597: SpecifiedPersonForm: Accept initial values and require email address
- 0dfa5b3: JobCategorySuggest: Pass through
name
prop - 0dfa5b3: JobCategorySelect: Pass through
name
prop
- c68f8fd: Remove userForm hook from SpecifiedPersonForm
- 87ef14b: Fix SpecifiedPersonForm event handling
- 9415b92: Prevent default SpecifiedPersonForm form submission
- c532880: feat(SpecifiedPersonForm): Add component
- b3d9f56: deps: yup ^0.30.0
- 26c015c: deps: Support React 17
-
9c84c86: JobCategorySuggest: Use ID as RadioItem value
This releases #243.
- ed472eb: fix(JobCategorySuggest): set current value of managed radio group
- 080ee2d: Handle Braid 29.13.1
onChange
changes
- c27a8f0: Migrate to RadioGroup
- da4e51e: deps: @hookform/resolvers ^1.0.0
-
ef8b000: Align Privacy Consent render with candidate
-
41d63fc: Remove hirer ID from questionnaire builder
- Consumers must now supply a
hirerId
prop to<QuestionnaireBuilder/>
graphqlInput
is now takes an array of components
- Consumers must now supply a
- c1a0aa4: deps: Bundle
@types/content-disposition
- 92a5f91: Unnest GraphQL input component
- fb2968b: Render questionnaire form from GraphQL mutation
- 9109456: deps: require braid-design-system@29
- 9109456: deps: require scoobie@4
-
d89e63e: deps: Apollo Client 3
Breaking: widgets require an Apollo Client 3 instance to be passed in.
- d89e63e: Avoid GraphQL queries during SSR
- b950182: Fixes JobCategorySuggest radio checklist's ID being overwritten. This would prevent a user from clicking the radio label to change their selection.
- 6791783: Type LocationSuggest queries and variables and fix bugs while getting nearest locations
- 7a0cc51: Adds the ability to use geolocation while suggesting locations using
LocationSuggest
- 7595986: Export questionnaire builder components
- 63ea27f: Fix questionnaire builder mutation variables
- 6c8578e: JobCategorySuggest:
tone
andmessage
props are now optional
- fdcf4d7: Enable
name
,message
andtone
to be passed in as props for JobCategorySuggest
- 3113dd2: JobCategorySuggest: Resolve module imports using relative paths to fix consumer errors
-
dd07791: Adds JobCategorySuggest component
- Abstracts the
jobCategorySuggestions
query on SEEK API and provides a list of suggested job categories for a position profile input.
- Abstracts the
- fda1d1e: Add repository info to package.json files
- bcb0b8d: Add Job Category Select component
- 95268da: Fixes type resolution error in consumers. Now resolves SEEK types via relative path
- 8a6a69d: Remove enforced typing on client (ApolloClient) for LocationSuggest
- f3b6f7d: Adds LocationSuggest component
- 4581e81: Bundles SEEK types directly within fe/lib
- b307e2f: Exports SEEK graphql types for consumer use
- 2008f11: Adds storybook with Example component structure
- ef648a2: Initial version