Skip to content

Commit 109982e

Browse files
committed
Change message and translation to record types
1 parent d7df6b0 commit 109982e

File tree

6 files changed

+24
-35
lines changed

6 files changed

+24
-35
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
- Removed `Intl.now`
1212
- `FormattedRelative` has been renamed to `FormattedRelativeTime` and its API has been changed as well
1313
- `Intl.formatRelative` has been renamed to `Intl.formatRelativeTime` and its API has been changed as well
14+
* **[ BREAKING ]** Changed `ReactIntl.message` to record type.
15+
* **[ BREAKING ]** Removed `ReactIntl.translation`.
1416
* **[ BREAKING ]** Removed `ReactIntlCompat`.
1517

1618
# 1.1.0

examples/Locale.re

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[@bs.module "./translations/en.json"]
2-
external en: array(ReactIntl.translation) = "default";
2+
external en: array(Util.translation) = "default";
33
[@bs.module "./translations/ru.json"]
4-
external ru: array(ReactIntl.translation) = "default";
4+
external ru: array(Util.translation) = "default";
55

66
type locale =
77
| En

examples/Page.re

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
open ReactIntl;
2-
open PageLocale;
32

43
[@react.component]
54
let make = (~locale, ~setLocale) => {
@@ -23,12 +22,12 @@ let make = (~locale, ~setLocale) => {
2322
<FormattedMessage id="page.world" defaultMessage="World" />
2423
</div>
2524
<div>
26-
{intl->Intl.formatMessage(pageLocale##today)->React.string}
25+
{intl->Intl.formatMessage(PageLocale.today)->React.string}
2726
" "->React.string
2827
{intl->Intl.formatDate(Js.Date.make())->React.string}
2928
" (intl.formatDate)"->React.string
3029
<br />
31-
{intl->Intl.formatMessage(pageLocale##today)->React.string}
30+
{intl->Intl.formatMessage(PageLocale.today)->React.string}
3231
" "->React.string
3332
<FormattedDate value={Js.Date.make()} />
3433
" (FormattedDate)"->React.string

examples/PageLocale.re

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
1-
let pageLocale =
2-
[@intl.messages]
3-
{
4-
"hello": {
5-
"id": "page.hello",
6-
"defaultMessage": "Hello",
7-
},
8-
"world": {
9-
"id": "page.world",
10-
"defaultMessage": "World",
11-
},
12-
"today": {
13-
"id": "page.today",
14-
"defaultMessage": "Today is",
15-
},
16-
};
1+
open ReactIntl;
2+
[@intl.messages];
3+
4+
let hello = {id: "page.hello", defaultMessage: "Hello"};
5+
let world = {id: "page.world", defaultMessage: "World"};
6+
let today = {id: "page.today", defaultMessage: "Today is"};

examples/Util.re

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
1-
let translationsToDict = (translations: array(ReactIntl.translation)) => {
1+
type translation = {
2+
id: string,
3+
defaultMessage: string,
4+
message: Js.nullable(string),
5+
};
6+
7+
let translationsToDict = (translations: array(translation)) => {
28
translations->Belt.Array.reduce(
39
Js.Dict.empty(),
410
(dict, entry) => {
511
dict->Js.Dict.set(
6-
entry##id,
7-
switch (entry##message->Js.Nullable.toOption) {
12+
entry.id,
13+
switch (entry.message->Js.Nullable.toOption) {
814
| None
9-
| Some("") => entry##defaultMessage
15+
| Some("") => entry.defaultMessage
1016
| Some(message) => message
1117
},
1218
);

src/ReactIntl.re

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,8 @@ external displayNameFormatOptions:
9090
displayNameFormatOptions;
9191

9292
type message = {
93-
.
94-
"id": string,
95-
"defaultMessage": string,
96-
};
97-
98-
type translation = {
99-
.
100-
"id": string,
101-
"defaultMessage": string,
102-
"message": Js.nullable(string),
93+
id: string,
94+
defaultMessage: string,
10395
};
10496

10597
type part = {

0 commit comments

Comments
 (0)