From dff1f0b4be8e616cd77152a45f49321b6c2612d4 Mon Sep 17 00:00:00 2001 From: prateekmtri Date: Thu, 18 Dec 2025 18:00:52 +0530 Subject: [PATCH] feat: added simple character counter play --- src/plays/index.js | 115 ++++++++++++++++++ .../SimpleCharacterCounter.jsx | 68 +++++++++++ 2 files changed, 183 insertions(+) create mode 100644 src/plays/index.js create mode 100644 src/plays/simple-character-counter/SimpleCharacterCounter.jsx diff --git a/src/plays/index.js b/src/plays/index.js new file mode 100644 index 000000000..0a9879776 --- /dev/null +++ b/src/plays/index.js @@ -0,0 +1,115 @@ +// Do not modify the content of this file + export { default as CodeEditor } from 'plays/code-editor/CodeEditor'; + export { default as CdTimerComp } from 'plays/date-time-counter/CdTimerComp'; + export { default as AnalogClock } from 'plays/analog-clock/AnalogClock'; + export { default as RegistrationForm } from 'plays/registration-form/RegistrationForm'; + export { default as NetlifyCardGame } from 'plays/memory-game/NetlifyCardGame'; + export { default as TicTacToeGame } from 'plays/tic-tac-toe-game/TicTacToeGame'; + export { default as QuoteGenerator } from 'plays/quote-generator/QuoteGenerator'; + export { default as FlipCardEffect } from 'plays/flip-card-effect/FlipCardEffect'; + export { default as DynamicRoutes } from 'plays/dynamic-routes/DynamicRoutes'; + export { default as BasicTree } from 'plays/org-tree/BasicTree'; + export { default as Calendar } from 'plays/calendar/Calendar'; + export { default as States } from 'plays/states/States'; + export { default as CurrentTimer } from 'plays/clock/CurrentTimer'; + export { default as MovieContainer } from 'plays/movies/MovieContainer'; + export { default as SocialCard } from 'plays/social-card/SocialCard'; + export { default as ReactTodoApp } from 'plays/react-todo-app/ReactTodoApp'; + export { default as CounterApp } from 'plays/counter/CounterApp'; + export { default as RandomMemeGenerator } from 'plays/random-meme-generator/RandomMemeGenerator'; + export { default as Keeper } from 'plays/keeper/Keeper'; + export { default as Quizeo } from 'plays/quizeo/Quizeo'; + export { default as NavBar } from 'plays/navbar/NavBar'; + export { default as ImageCarousel } from 'plays/image-carousel/ImageCarousel'; + export { default as SimpleLiveChat } from 'plays/simple-live-chat/SimpleLiveChat'; + export { default as WhyReact } from 'plays/why-react/WhyReact'; + export { default as ExpandingCards } from 'plays/expanding-cards/ExpandingCards'; + export { default as Imagegallery } from 'plays/image-gallery/Imagegallery'; + export { default as ReactGradients } from 'plays/react-gradients/ReactGradients'; + export { default as MarkdownEditor } from 'plays/markdown-editor/MarkdownEditor'; + export { default as StarRating } from 'plays/star-rating/StarRating'; + export { default as DevJokes } from 'plays/dev-jokes/DevJokes'; + export { default as CountriesStatics } from 'plays/countries-statics/CountriesStatics'; + export { default as ContextWithRealUsecases } from 'plays/context-with-real-usecases/ContextWithRealUsecases'; + export { default as QrCodeGenerator } from 'plays/qr-code-generator/QrCodeGenerator'; + export { default as GithubProfileSearch } from 'plays/git-hub-profile-search/GithubProfileSearch'; + export { default as PersonalProfileCard } from 'plays/personal-profile-card/PersonalProfileCard'; + export { default as InspirationalQuotes } from 'plays/inspirational-quotes/InspirationalQuotes'; + export { default as TypingSpeedTest } from 'plays/typing-speed-test/TypingSpeedTest'; + export { default as ImageCollector } from 'plays/image-collector/ImageCollector'; + export { default as TextAvatar } from 'plays/text-avatar/TextAvatar'; + export { default as NewsFeedApplication } from 'plays/news-feed-application/NewsFeedApplication'; + export { default as TwentyFourtyEight } from 'plays/2048/TwentyFourtyEight'; + export { default as Emojipedia } from 'plays/emojipedia/Emojipedia'; + export { default as DownloadFetchResponse } from 'plays/download-fetch-response/DownloadFetchResponse'; + export { default as Weather } from 'plays/weather/Weather'; + export { default as PokemonStats } from 'plays/pokemon-stats/PokemonStats'; + export { default as QuizApp } from 'plays/quiz-app/QuizApp'; + export { default as MultiselectComponent } from 'plays/multiselect-component/MultiselectComponent'; + export { default as PlayFairCipher } from 'plays/play-fair-cipher/PlayFairCipher'; + export { default as SierpinskiTriangle } from 'plays/sierpinski-triangle/SierpinskiTriangle'; + export { default as MotivateMe } from 'plays/motivate-me/MotivateMe'; + export { default as SavingsCalculator } from 'plays/savings-calculator/SavingsCalculator'; + export { default as ImageCompressor } from 'plays/image-compressor/ImageCompressor'; + export { default as ShoppingCart } from 'plays/shopping-cart/ShoppingCart'; + export { default as InfiniteScrolling } from 'plays/infinite-scrolling/InfiniteScrolling'; + export { default as PasswordGenerator } from 'plays/password-generator/PasswordGenerator'; + export { default as FunQuiz } from 'plays/fun-quiz/FunQuiz'; + export { default as ReactMultistepForm } from 'plays/react-multistep-form/ReactMultistepForm'; + export { default as WhyTypescript } from 'plays/why-typescript/WhyTypescript'; + export { default as SimpleSeoComponent } from 'plays/simple-seo-component/SimpleSeoComponent'; + export { default as TenziesGame } from 'plays/tenzies-game/TenziesGame'; + export { default as SmartTodoList } from 'plays/smart-todo-list/SmartTodoList'; + export { default as ExpensesTracker } from 'plays/expenses-tracker/ExpensesTracker'; + export { default as DadJokes } from 'plays/dad-jokes/DadJokes'; + export { default as ImageGalleryUsingUnsplashApi } from 'plays/image-gallery-using-unsplash-api/ImageGalleryUsingUnsplashApi'; + export { default as SimpleCalculator } from 'plays/simple-calculator/SimpleCalculator'; + export { default as TextAnalyzer } from 'plays/text-analyzer/TextAnalyzer'; + export { default as RandomQuoteCardGenerator } from 'plays/random-quote-card-generator/RandomQuoteCardGenerator'; + export { default as Pagination } from 'plays/pagination/Pagination'; + export { default as StickyNotes } from 'plays/sticky-notes/StickyNotes'; + export { default as GithubUserFinder } from 'plays/github-user-finder/GithubUserFinder'; + export { default as Notehack } from 'plays/notehack/Notehack'; + export { default as Pixy } from 'plays/pixy/Pixy'; + export { default as Tube2tunes } from 'plays/tube2tunes/Tube2tunes'; + export { default as Devblog } from 'plays/devblog/Devblog'; + export { default as CricketGame } from 'plays/cricket-game/CricketGame'; + export { default as ObjectDetector } from 'plays/object-detector/ObjectDetector'; + export { default as Photoshopapp } from 'plays/photoshopapp/Photoshopapp'; + export { default as RollTheDice } from 'plays/roll-the-dice/RollTheDice'; + export { default as DigitsDelight } from 'plays/digital-delight/DigitsDelight'; + export { default as BasicCalculator } from 'plays/basic-calculator/BasicCalculator'; + export { default as TravelAdvisor } from 'plays/travel-advisor/TravelAdvisor'; + export { default as ColorPalettesGenerator } from 'plays/color-palettes-generator/ColorPalettesGenerator'; + export { default as EmojiGame } from 'plays/emoji-game/EmojiGame'; + export { default as PlayDictionary } from 'plays/play-dictionary/PlayDictionary'; + export { default as SelfClickingButton } from 'plays/self-clicking-button/SelfClickingButton'; + export { default as SmartConverter } from 'plays/smart-converter/SmartConverter'; + export { default as Codenchill } from 'plays/codenchill/Codenchill'; + export { default as Wordle } from 'plays/wordle/Wordle'; + export { default as MultiplayerTicTacToe } from 'plays/multiplayer-tic-tac-toe/MultiplayerTicTacToe'; + export { default as InfiniteScrollWithDebouncingConcept } from 'plays/infinite-scroll-with-debouncing-concept/InfiniteScrollWithDebouncingConcept'; + export { default as VideoPreview } from 'plays/video-preview/VideoPreview'; + export { default as Custommemesgenerator } from 'plays/custommemesgenerator/Custommemesgenerator'; + export { default as ReactTransitions } from 'plays/react-transitions/ReactTransitions'; + export { default as CalculatorByTea } from 'plays/calculator-by-tea/CalculatorByTea'; + export { default as GitHubUserSearch } from 'plays/github-user-search/GitHubUserSearch'; + export { default as UrlShortner } from 'plays/url-shortner/UrlShortner'; + export { default as TipCalculator } from 'plays/tip-calculator/TipCalculator'; + export { default as HangmanGame } from 'plays/hangman-game/HangmanGame'; + export { default as AirbnbExperiencesClone } from 'plays/airbnb-experiences-clone/AirbnbExperiencesClone'; + export { default as SchulteTables } from 'plays/schulte-tables/SchulteTables'; + export { default as DiceSimulator } from 'plays/dice-simulator/DiceSimulator'; + export { default as Accordian } from 'plays/accordian/Accordian'; + export { default as LanguageTranslater } from 'plays/language-translater/LanguageTranslater'; + export { default as Currencyconverter } from 'plays/currencyconverter/Currencyconverter'; + export { default as Zoomlogin } from 'plays/zoomlogin/Zoomlogin'; + export { default as Cheesylines } from 'plays/cheesylines/Cheesylines'; + export { default as RandomAvatar } from 'plays/random-avatar/RandomAvatar'; + export { default as BodymassindexCalculator } from 'plays/bodymassindex-calculator/BodymassindexCalculator'; + export { default as DailyJournal } from 'plays/daily-journa/DailyJournal'; + export { default as Dictionary } from 'plays/dictionary/Dictionary'; + export { default as Steps } from 'plays/steps/Steps'; + export { default as TextToSpeech } from 'plays/text-to-speech/TextToSpeech'; + export { default as SimpleTodoApp } from 'plays/simple-todo-app/SimpleTodoApp'; + export { default as SimpleCharacterCounter } from 'plays/simple-character-counter/SimpleCharacterCounter'; \ No newline at end of file diff --git a/src/plays/simple-character-counter/SimpleCharacterCounter.jsx b/src/plays/simple-character-counter/SimpleCharacterCounter.jsx new file mode 100644 index 000000000..d5e35caef --- /dev/null +++ b/src/plays/simple-character-counter/SimpleCharacterCounter.jsx @@ -0,0 +1,68 @@ +import React, { useState } from 'react'; +import PlayHeader from 'common/playlists/PlayHeader'; + +function SimpleCharacterCounter(props) { + // Your Code Starts Here + const [text, setText] = useState(''); + + const handleChange = (event) => { + setText(event.target.value); + }; + + const wordCount = text.trim() === '' ? 0 : text.trim().split(/\s+/).length; + const charCount = text.length; + + // Your Code Ends Here + + return ( + <> +
+ +
+ {/* Your Render Starts Here */} +
+