Merge branch 'datetime-utils' into 'dev'

Added date and time utilities.

See merge request turris/reforis/foris-js!92
merge-requests/160/merge
Maciej Lenartowicz 4 years ago
commit d97248c6ec
  1. 2
      package-lock.json
  2. 2
      package.json
  3. 1
      src/index.js
  4. 2
      src/testUtils/setup.js
  5. 51
      src/utils/__tests__/datetime.test.js
  6. 8
      src/utils/datetime.js

2
package-lock.json generated

@ -1,6 +1,6 @@
{
"name": "foris",
"version": "4.0.0",
"version": "4.1.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

@ -1,6 +1,6 @@
{
"name": "foris",
"version": "4.0.0",
"version": "4.1.0",
"description": "Set of components and utils for Foris and its plugins.",
"author": "CZ.NIC, z.s.p.o.",
"repository": {

@ -64,6 +64,7 @@ export {
} from "./utils/conditionalHOCs";
export { ErrorMessage } from "./utils/ErrorMessage";
export { useClickOutside } from "./utils/hooks";
export { toLocaleDateString } from "./utils/datetime";
// Foris URL
export { ForisURLs, REFORIS_URL_PREFIX } from "./forisUrls";

@ -17,7 +17,7 @@ global.afterEach(() => {
global._ = (str) => str;
global.ngettext = (str) => str;
global.babel = { format: (str) => str };
global.ForisTranslations = {};
global.ForisTranslations = { locale: "en" };
// Mock web sockets
window.WebSocket = jest.fn();

@ -0,0 +1,51 @@
/*
* Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import { toLocaleDateString } from "../datetime";
describe("toLocaleDateString", () => {
it("should work with different locale", () => {
global.ForisTranslations = { locale: "fr" };
expect(
toLocaleDateString("2020-02-20T12:51:36+00:00")
).toBe("20 février 2020 12:51");
global.ForisTranslations = { locale: "en" };
})
it("should convert with default format", () => {
expect(
toLocaleDateString("2020-02-20T12:51:36+00:00")
).toBe("February 20, 2020 12:51 PM");
});
it("should convert with custom input format", () => {
expect(
toLocaleDateString(
"2020-02-20 12:51:36 +0000",
{ inputFormat: "YYYY-MM-DD HH:mm:ss Z" },
)
).toBe("February 20, 2020 12:51 PM");
});
it("should convert with custom output format", () => {
expect(
toLocaleDateString(
"2020-02-20T12:51:36+00:00",
{ outputFormat: "LL" },
)
).toBe("February 20, 2020");
});
it("should convert with custom input and output format", () => {
expect(
toLocaleDateString(
"2020-02-20 12:51:36 +0000",
{ inputFormat: "YYYY-MM-DD HH:mm:ss Z", outputFormat: "LL" },
)
).toBe("February 20, 2020");
});
});

@ -0,0 +1,8 @@
import moment from "moment";
export function toLocaleDateString(date, { inputFormat, outputFormat = "LLL" } = {}) {
const parsedDate = inputFormat ? moment(date, inputFormat) : moment(date);
return parsedDate
.locale(ForisTranslations.locale)
.format(outputFormat);
}
Loading…
Cancel
Save