c2a9be31 Added a country picker to address fields in Portal and Admin
ref https://linear.app/ghost/issue/BER-3804/improve-address-collection
The country part of an address was a two-letter code typed by hand, in the
member's Portal account settings and in the address editor on a member's
record. Both surfaces refused anything that was not two letters, and neither
told the person which two, so "Germany" and "DEU" were both dead ends.
One catalogue now lists every country an address may name, as ISO 3166-1
codes in the shared field-types package, since an address is source-agnostic
and any of Ghost's collection points may write one. Names come from the
browser's own locale data in both apps, in the site's language for a member
and in English for staff, so the same code reads the same everywhere and the
two Congos read the way address forms show them. Portal offers the list as a
native select styled like its other inputs; Admin offers it as the searchable
picker the tier checkout card and the language setting already use, and the
tier card keeps its own list of where Stripe ships. Address summaries on a
member's record, in the members list and in filter chips read the country by
name rather than by code; exports and the API keep the code.
A stored code the catalogue does not hold, such as a Stripe-only shipping
code from checkout or an imported value, is shown as an extra option rather
than blanked, so what a record holds is always visible and can be replaced. 113076c3 Added a country picker to address fields in Portal and Admin
ref https://linear.app/ghost/issue/BER-3804/improve-address-collection
The country part of an address was a two-letter code typed by hand, in the
member's Portal account settings and in the address editor on a member's
record. Both surfaces refused anything that was not two letters, and neither
told the person which two, so "Germany" and "DEU" were both dead ends.
One catalogue now lists every country an address may name, as ISO 3166-1
codes in the shared field-types package, since an address is source-agnostic
and any of Ghost's collection points may write one. Names come from the
browser's own locale data in both apps, in the site's language for a member
and in English for staff, so the same code reads the same everywhere and the
two Congos read the way address forms show them. Portal offers the list as a
native select styled like its other inputs; Admin offers it as the searchable
picker the tier checkout card and the language setting already use, and the
tier card keeps its own list of where Stripe ships. Address summaries on a
member's record, in the members list and in filter chips read the country by
name rather than by code; exports and the API keep the code.
A stored code the catalogue does not hold, such as a Stripe-only shipping
code from checkout or an imported value, is shown as an extra option rather
than blanked, so what a record holds is always visible and can be replaced. 901b27c1 Added a country picker to address fields in Portal and Admin
ref https://linear.app/ghost/issue/BER-3804/improve-address-collection
The country part of an address was a two-letter code typed by hand, in the
member's Portal account settings and in the address editor on a member's
record. Both surfaces refused anything that was not two letters, and neither
told the person which two, so "Germany" and "DEU" were both dead ends.
One catalogue now lists every country an address may name, as ISO 3166-1
codes in the shared field-types package, since an address is source-agnostic
and any of Ghost's collection points may write one. Names come from the
browser's own locale data in both apps, in the site's language for a member
and in English for staff, so the same code reads the same everywhere and the
two Congos read the way address forms show them. Portal offers the list as a
native select styled like its other inputs; Admin offers it as the searchable
picker the tier checkout card and the language setting already use, and the
tier card keeps its own list of where Stripe ships. Address summaries on a
member's record, in the members list and in filter chips read the country by
name rather than by code; exports and the API keep the code.
A stored code the catalogue does not hold, such as a Stripe-only shipping
code from checkout or an imported value, is shown as an extra option rather
than blanked, so what a record holds is always visible and can be replaced. b788e0c0 Added a country picker to address fields in Portal and Admin
ref https://linear.app/ghost/issue/BER-3804/improve-address-collection
The country part of an address was a two-letter code typed by hand, in the
member's Portal account settings and in the address editor on a member's
record. Both surfaces refused anything that was not two letters, and neither
told the person which two, so "Germany" and "DEU" were both dead ends.
One catalogue now lists every country an address may name, as ISO 3166-1
codes in the shared field-types package, since an address is source-agnostic
and any of Ghost's collection points may write one. Names come from the
browser's own locale data in both apps, in the site's language for a member
and in English for staff, so the same code reads the same everywhere and the
two Congos read the way address forms show them. Portal offers the list as a
native select styled like its other inputs; Admin offers it as the searchable
picker the tier checkout card and the language setting already use, and the
tier card keeps its own list of where Stripe ships. Address summaries on a
member's record, in the members list and in filter chips read the country by
name rather than by code; exports and the API keep the code.
A stored code the catalogue does not hold, such as a Stripe-only shipping
code from checkout or an imported value, is shown as an extra option rather
than blanked, so what a record holds is always visible and can be replaced. 137ea30f Added a country picker to address fields in Portal and Admin
ref https://linear.app/ghost/issue/BER-3804/improve-address-collection
The country part of an address was a two-letter code typed by hand, in the
member's Portal account settings and in the address editor on a member's
record. Both surfaces refused anything that was not two letters, and neither
told the person which two, so "Germany" and "DEU" were both dead ends.
One catalogue now lists every country an address may name, as ISO 3166-1
codes in the shared field-types package, since an address is source-agnostic
and any of Ghost's collection points may write one. Names come from the
browser's own locale data in both apps, in the site's language for a member
and in English for staff, so the same code reads the same everywhere and the
two Congos read the way address forms show them. Portal offers the list as a
native select styled like its other inputs; Admin offers it as the searchable
picker the tier checkout card and the language setting already use, and the
tier card keeps its own list of where Stripe ships. Address summaries on a
member's record, in the members list and in filter chips read the country by
name rather than by code; exports and the API keep the code.
A stored code the catalogue does not hold, such as a Stripe-only shipping
code from checkout or an imported value, is shown as an extra option rather
than blanked, so what a record holds is always visible and can be replaced.