mirror of
				https://gitlab.nic.cz/turris/reforis/foris-js.git
				synced 2025-11-03 23:00:31 +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:
		
							
								
								
									
										2
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -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": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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();
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										51
									
								
								src/utils/__tests__/datetime.test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/utils/__tests__/datetime.test.js
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										8
									
								
								src/utils/datetime.js
									
									
									
									
									
										Normal 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);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user