UNPKG

ethiopian-date-picker-and-converter

Version:

A React component library for converting and picking Ethiopian dates.

135 lines (98 loc) 3.8 kB
# Ethiopian Date Picker and Converter The Ethiopian Date Picker and Converter is a React component library designed to assist anyone who needs to work with Ethiopian dates. Whether you're converting a date from the Gregorian calendar to the Ethiopian calendar or simply adding a date picker UI to your input fields, this library simplifies your development process. ## Features - Convert Gregorian dates to Ethiopian dates. - User-friendly date picker UI for selecting Ethiopian dates. - Easy integration into your project. - TypeScript support - Modern styling with customizable themes - Handles leap years correctly - Proper date validation ## Installation You can install the package using npm: ```bash npm install ethiopian-date-picker-and-converter ``` Or using yarn: ```bash yarn add ethiopian-date-picker-and-converter ``` ## Usage ### Date Picker Component ```typescript import React, { useState } from 'react'; import { EthiopianDatePicker } from 'ethiopian-date-picker-and-converter'; import 'ethiopian-date-picker-and-converter/dist/cjs/style.css'; const App = () => { const handleDateChange = (date: string) => { console.log("Selected Ethiopian date:", date); }; return ( <div> <h1>Ethiopian Date Picker Example</h1> <EthiopianDatePicker id="date-picker" placeholder="የቀን መምረጫ / Select Date" onDateChange={handleDateChange} /> </div> ); }; export default App; ``` ### Date Conversion Utility The library includes a dedicated utility file for date conversions. This utility provides functionality for converting Gregorian dates to Ethiopian dates with different return formats. ```typescript import { EthiopianDateConverter } from "ethiopian-date-picker-and-converter"; // Convert with default 'full' format const fullDate = EthiopianDateConverter('2024-01-15'); // Returns: 'ሰኞ፣ ጥር 7 ቀን 2016 ዓ.ም.' // Convert with 'date-only' format const dateOnly = EthiopianDateConverter('2024-01-15', 'date-only'); // Returns: '2016-5-7' // Convert with 'object' format const dateObject = EthiopianDateConverter('2024-01-15', 'object'); // Returns: { // year: 2016, // month: 5, // day: 7, // monthName: 'ጥር', // weekDay: 'ሰኞ' // } ``` ### Date Conversion Utility Props | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | gregorianDate | string | Yes | - | Gregorian date in 'YYYY-MM-DD' format | | returnFormat | 'full' \| 'date-only' \| 'object' | No | 'full' | Format of the returned Ethiopian date | #### Return Types - **'full'**: Returns a string with complete date in Amharic (e.g., 'ሰኞ፣ ጥር 7 ቀን 2016 ዓ.ም.') - **'date-only'**: Returns a string in 'YYYY-M-D' format - **'object'**: Returns an object with year, month, day, monthName, and weekDay properties ## Props ### EthiopianDatePicker Props | Prop | Type | Required | Description | |------|------|----------|-------------| | id | string | Yes | Unique identifier for the input element | | placeholder | string | No | Placeholder text for the input | | onDateChange | (date: string) => void | Yes | Callback function when date is selected | ## Development To run the project locally: 1. Clone the repository: ```bash git clone https://github.com/KingAbe1/et-calander-picker-and-converter.git ``` 2. Install dependencies: ```bash npm install ``` 3. Start Storybook: ```bash npm run storybook ``` 4. Build the library: ```bash npm run build ``` ## Contributing Contributions are welcome! Please feel free to submit a pull request or open an issue for any bugs or feature requests. ## License This project is licensed under the MIT License. See the LICENSE file for details.