1
0
mirror of https://gitlab.nic.cz/turris/reforis/foris-js.git synced 2024-11-14 17:35:35 +01:00

Merge branch 'datetime-utils' into 'dev'

Added date and time utilities.

See merge request turris/reforis/foris-js!92
This commit is contained in:
Maciej Lenartowicz 2020-02-20 14:30:28 +01:00
commit d97248c6ec
6 changed files with 63 additions and 3 deletions

2
package-lock.json generated
View File

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

View File

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

View File

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

View File

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

View File

@ -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");
});
});

8
src/utils/datetime.js Normal file
View File

@ -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);
}