From a1ea9a19e64f062c1d63ecef7fb200fbba063fe4 Mon Sep 17 00:00:00 2001 From: MAZE Date: Fri, 1 Dec 2023 17:55:28 +0330 Subject: [PATCH] refactor: separate sounds --- src/data/sounds.ts | 14 ++ src/data/sounds.tsx | 337 ------------------------------------ src/data/sounds/animals.tsx | 49 ++++++ src/data/sounds/nature.tsx | 75 ++++++++ src/data/sounds/noise.tsx | 30 ++++ src/data/sounds/rain.tsx | 61 +++++++ src/data/sounds/things.tsx | 52 ++++++ src/data/sounds/urban.tsx | 65 +++++++ 8 files changed, 346 insertions(+), 337 deletions(-) create mode 100644 src/data/sounds.ts delete mode 100644 src/data/sounds.tsx create mode 100644 src/data/sounds/animals.tsx create mode 100644 src/data/sounds/nature.tsx create mode 100644 src/data/sounds/noise.tsx create mode 100644 src/data/sounds/rain.tsx create mode 100644 src/data/sounds/things.tsx create mode 100644 src/data/sounds/urban.tsx diff --git a/src/data/sounds.ts b/src/data/sounds.ts new file mode 100644 index 0000000..5a194ec --- /dev/null +++ b/src/data/sounds.ts @@ -0,0 +1,14 @@ +import { nature } from './sounds/nature'; +import { rain } from './sounds/rain'; +import { animals } from './sounds/animals'; +import { urban } from './sounds/urban'; +import { things } from './sounds/things'; +import { noise } from './sounds/noise'; + +import type { Categories } from './types'; + +export const sounds: { + categories: Categories; +} = { + categories: [nature, rain, animals, urban, things, noise], +}; diff --git a/src/data/sounds.tsx b/src/data/sounds.tsx deleted file mode 100644 index 252b735..0000000 --- a/src/data/sounds.tsx +++ /dev/null @@ -1,337 +0,0 @@ -import { - GiCricket, - GiSeagull, - GiWindow, - GiWaterfall, - GiWolfHead, - GiOwl, - GiWindchimes, - GiSoundWaves, -} from 'react-icons/gi/index'; -import { - BsFire, - BsSoundwave, - BsFillCloudRainFill, - BsFillCloudRainHeavyFill, - BsUmbrellaFill, - BsFillKeyboardFill, -} from 'react-icons/bs/index'; -import { - BiSolidTree, - BiWater, - BiSolidCoffeeAlt, - BiSolidTrain, - BiSolidPlaneAlt, -} from 'react-icons/bi/index'; -import { - FaWater, - FaWind, - FaLeaf, - FaDog, - FaFrog, - FaCity, - FaRoad, - FaKeyboard, - FaClock, - FaRegSnowflake, -} from 'react-icons/fa/index'; -import { - PiBirdFill, - PiTentFill, - PiRoadHorizonFill, - PiSirenBold, -} from 'react-icons/pi/index'; -import { MdOutlineThunderstorm, MdSmartToy } from 'react-icons/md/index'; -import { TbScubaMask, TbBowlFilled } from 'react-icons/tb/index'; -import { RiFilePaper2Fill } from 'react-icons/ri/index'; - -import type { Categories } from './types'; - -export const sounds: { - categories: Categories; -} = { - categories: [ - { - icon: , - id: 'nature', - sounds: [ - { - icon: , - id: 'river', - label: 'River', - src: '/sounds/nature/river.mp3', - }, - { - icon: , - id: 'waves', - label: 'Waves', - src: '/sounds/nature/waves.mp3', - }, - { - icon: , - id: 'campfire', - label: 'Campfire', - src: '/sounds/nature/campfire.mp3', - }, - { - icon: , - id: 'wind', - label: 'Wind', - src: '/sounds/nature/wind.mp3', - }, - { - icon: , - id: 'howling-wind', - label: 'Howling Wind', - src: '/sounds/nature/howling-wind.mp3', - }, - { - icon: , - id: 'wind-in-trees', - label: 'Wind in Trees', - src: '/sounds/nature/wind-in-trees.mp3', - }, - { - icon: , - id: 'waterfall', - label: 'Waterfall', - src: '/sounds/nature/waterfall.mp3', - }, - { - icon: , - id: 'underwater', - label: 'Underwater', - src: '/sounds/nature/underwater.mp3', - }, - { - icon: , - id: 'walk-in-snow', - label: 'Walk in Snow', - src: '/sounds/nature/walk-in-snow.mp3', - }, - { - icon: , - id: 'walk-on-leaves', - label: 'Walk on Leaves', - src: '/sounds/nature/walk-on-leaves.mp3', - }, - ], - title: 'Nature', - }, - { - icon: , - id: 'rain', - sounds: [ - { - icon: , - id: 'light-rain', - label: 'Light Rain', - src: '/sounds/rain/light-rain.mp3', - }, - { - icon: , - id: 'heavy-rain', - label: 'Heavy Rain', - src: '/sounds/rain/heavy-rain.mp3', - }, - { - icon: , - id: 'thunder', - label: 'Thunder', - src: '/sounds/rain/thunder.mp3', - }, - { - icon: , - id: 'rain-on-window', - label: 'Rain on Window', - src: '/sounds/rain/rain-on-window.mp3', - }, - { - icon: , - id: 'rain-on-umbrella', - label: 'Rain on Umbrella', - src: '/sounds/rain/rain-on-umbrella.mp3', - }, - { - icon: , - id: 'rain-on-tent', - label: 'Rain on Tent', - src: '/sounds/rain/rain-on-tent.mp3', - }, - { - icon: , - id: 'rain-on-leaves', - label: 'Rain on Leaves', - src: '/sounds/rain/rain-on-leaves.mp3', - }, - ], - title: 'Rain', - }, - { - icon: , - id: 'animals', - sounds: [ - { - icon: , - id: 'birds', - label: 'Birds', - src: '/sounds/animals/birds.mp3', - }, - { - icon: , - id: 'seagulls', - label: 'Seagulls', - src: '/sounds/animals/seagulls.mp3', - }, - { - icon: , - id: 'crickets', - label: 'Crickets', - src: '/sounds/animals/crickets.mp3', - }, - { - icon: , - id: 'wolf', - label: 'Wolf', - src: '/sounds/animals/wolf.mp3', - }, - { - icon: , - id: 'owl', - label: 'Owl', - src: '/sounds/animals/owl.mp3', - }, - { - icon: , - id: 'frog', - label: 'Frog', - src: '/sounds/animals/frog.mp3', - }, - ], - title: 'Animals', - }, - { - icon: , - id: 'urban', - sounds: [ - { - icon: , - id: 'cafe', - label: 'Cafe', - src: '/sounds/urban/cafe.mp3', - }, - { - icon: , - id: 'highway', - label: 'Highway', - src: '/sounds/urban/highway.mp3', - }, - { - icon: , - id: 'road', - label: 'Road', - src: '/sounds/urban/road.mp3', - }, - { - icon: , - id: 'ambulance-siren', - label: 'Ambulance Siren', - src: '/sounds/urban/ambulance-siren.mp3', - }, - { - icon: , - id: 'train', - label: 'Train', - src: '/sounds/urban/train.mp3', - }, - { - icon: , - id: 'inside-a-train', - label: 'Inside a Train', - src: '/sounds/urban/inside-a-train.mp3', - }, - { - icon: , - id: 'airport', - label: 'Airport', - src: '/sounds/urban/airport.mp3', - }, - { - icon: , - id: 'airplane', - label: 'Airplane', - src: '/sounds/urban/airplane.mp3', - }, - ], - title: 'Urban', - }, - { - icon: , - id: 'things', - sounds: [ - { - icon: , - id: 'keyboard', - label: 'Keyboard', - src: '/sounds/things/keyboard.mp3', - }, - { - icon: , - id: 'typewriter', - label: 'Typewriter', - src: '/sounds/things/typewriter.mp3', - }, - { - icon: , - id: 'paper', - label: 'Paper', - src: '/sounds/things/paper.mp3', - }, - { - icon: , - id: 'clock', - label: 'Clock', - src: '/sounds/things/clock.mp3', - }, - { - icon: , - id: 'wind-chimes', - label: 'Wind Chimes', - src: '/sounds/things/wind-chimes.mp3', - }, - { - icon: , - id: 'singing-bowl', - label: 'Singing Bowl', - src: '/sounds/things/singing-bowl.mp3', - }, - ], - title: 'Things', - }, - { - icon: , - id: 'noise', - sounds: [ - { - icon: , - id: 'white-noise', - label: 'White Noise', - src: '/sounds/noise/white-noise.wav', - }, - { - icon: , - id: 'pink-noise', - label: 'Pink Noise', - src: '/sounds/noise/pink-noise.wav', - }, - { - icon: , - id: 'brown-noise', - label: 'Brown Noise', - src: '/sounds/noise/brown-noise.wav', - }, - ], - title: 'Noise', - }, - ], -}; diff --git a/src/data/sounds/animals.tsx b/src/data/sounds/animals.tsx new file mode 100644 index 0000000..aa58216 --- /dev/null +++ b/src/data/sounds/animals.tsx @@ -0,0 +1,49 @@ +import { GiCricket, GiSeagull, GiWolfHead, GiOwl } from 'react-icons/gi/index'; +import { FaDog, FaFrog } from 'react-icons/fa/index'; +import { PiBirdFill } from 'react-icons/pi/index'; + +import type { Category } from '../types'; + +export const animals: Category = { + icon: , + id: 'animals', + sounds: [ + { + icon: , + id: 'birds', + label: 'Birds', + src: '/sounds/animals/birds.mp3', + }, + { + icon: , + id: 'seagulls', + label: 'Seagulls', + src: '/sounds/animals/seagulls.mp3', + }, + { + icon: , + id: 'crickets', + label: 'Crickets', + src: '/sounds/animals/crickets.mp3', + }, + { + icon: , + id: 'wolf', + label: 'Wolf', + src: '/sounds/animals/wolf.mp3', + }, + { + icon: , + id: 'owl', + label: 'Owl', + src: '/sounds/animals/owl.mp3', + }, + { + icon: , + id: 'frog', + label: 'Frog', + src: '/sounds/animals/frog.mp3', + }, + ], + title: 'Animals', +}; diff --git a/src/data/sounds/nature.tsx b/src/data/sounds/nature.tsx new file mode 100644 index 0000000..58dafd6 --- /dev/null +++ b/src/data/sounds/nature.tsx @@ -0,0 +1,75 @@ +import { GiWaterfall } from 'react-icons/gi/index'; +import { BsFire } from 'react-icons/bs/index'; +import { BiSolidTree, BiWater } from 'react-icons/bi/index'; +import { FaWater, FaWind, FaLeaf, FaRegSnowflake } from 'react-icons/fa/index'; +import { TbScubaMask } from 'react-icons/tb/index'; + +import type { Category } from '../types'; + +export const nature: Category = { + icon: , + id: 'nature', + sounds: [ + { + icon: , + id: 'river', + label: 'River', + src: '/sounds/nature/river.mp3', + }, + { + icon: , + id: 'waves', + label: 'Waves', + src: '/sounds/nature/waves.mp3', + }, + { + icon: , + id: 'campfire', + label: 'Campfire', + src: '/sounds/nature/campfire.mp3', + }, + { + icon: , + id: 'wind', + label: 'Wind', + src: '/sounds/nature/wind.mp3', + }, + { + icon: , + id: 'howling-wind', + label: 'Howling Wind', + src: '/sounds/nature/howling-wind.mp3', + }, + { + icon: , + id: 'wind-in-trees', + label: 'Wind in Trees', + src: '/sounds/nature/wind-in-trees.mp3', + }, + { + icon: , + id: 'waterfall', + label: 'Waterfall', + src: '/sounds/nature/waterfall.mp3', + }, + { + icon: , + id: 'underwater', + label: 'Underwater', + src: '/sounds/nature/underwater.mp3', + }, + { + icon: , + id: 'walk-in-snow', + label: 'Walk in Snow', + src: '/sounds/nature/walk-in-snow.mp3', + }, + { + icon: , + id: 'walk-on-leaves', + label: 'Walk on Leaves', + src: '/sounds/nature/walk-on-leaves.mp3', + }, + ], + title: 'Nature', +}; diff --git a/src/data/sounds/noise.tsx b/src/data/sounds/noise.tsx new file mode 100644 index 0000000..5042001 --- /dev/null +++ b/src/data/sounds/noise.tsx @@ -0,0 +1,30 @@ +import { GiSoundWaves } from 'react-icons/gi/index'; +import { BsSoundwave } from 'react-icons/bs/index'; + +import type { Category } from '../types'; + +export const noise: Category = { + icon: , + id: 'noise', + sounds: [ + { + icon: , + id: 'white-noise', + label: 'White Noise', + src: '/sounds/noise/white-noise.wav', + }, + { + icon: , + id: 'pink-noise', + label: 'Pink Noise', + src: '/sounds/noise/pink-noise.wav', + }, + { + icon: , + id: 'brown-noise', + label: 'Brown Noise', + src: '/sounds/noise/brown-noise.wav', + }, + ], + title: 'Noise', +}; diff --git a/src/data/sounds/rain.tsx b/src/data/sounds/rain.tsx new file mode 100644 index 0000000..0fc4691 --- /dev/null +++ b/src/data/sounds/rain.tsx @@ -0,0 +1,61 @@ +import { + BsFillCloudRainFill, + BsFillCloudRainHeavyFill, + BsUmbrellaFill, +} from 'react-icons/bs/index'; +import { GiWindow } from 'react-icons/gi/index'; +import { FaLeaf } from 'react-icons/fa/index'; +import { PiTentFill } from 'react-icons/pi/index'; +import { MdOutlineThunderstorm } from 'react-icons/md/index'; + +import type { Category } from '../types'; + +export const rain: Category = { + icon: , + id: 'rain', + sounds: [ + { + icon: , + id: 'light-rain', + label: 'Light Rain', + src: '/sounds/rain/light-rain.mp3', + }, + { + icon: , + id: 'heavy-rain', + label: 'Heavy Rain', + src: '/sounds/rain/heavy-rain.mp3', + }, + { + icon: , + id: 'thunder', + label: 'Thunder', + src: '/sounds/rain/thunder.mp3', + }, + { + icon: , + id: 'rain-on-window', + label: 'Rain on Window', + src: '/sounds/rain/rain-on-window.mp3', + }, + { + icon: , + id: 'rain-on-umbrella', + label: 'Rain on Umbrella', + src: '/sounds/rain/rain-on-umbrella.mp3', + }, + { + icon: , + id: 'rain-on-tent', + label: 'Rain on Tent', + src: '/sounds/rain/rain-on-tent.mp3', + }, + { + icon: , + id: 'rain-on-leaves', + label: 'Rain on Leaves', + src: '/sounds/rain/rain-on-leaves.mp3', + }, + ], + title: 'Rain', +}; diff --git a/src/data/sounds/things.tsx b/src/data/sounds/things.tsx new file mode 100644 index 0000000..1bfb2b5 --- /dev/null +++ b/src/data/sounds/things.tsx @@ -0,0 +1,52 @@ +import { GiWindchimes } from 'react-icons/gi/index'; +import { BsFillKeyboardFill } from 'react-icons/bs/index'; +import { FaKeyboard, FaClock } from 'react-icons/fa/index'; +import { MdSmartToy } from 'react-icons/md/index'; +import { TbBowlFilled } from 'react-icons/tb/index'; +import { RiFilePaper2Fill } from 'react-icons/ri/index'; + +import type { Category } from '../types'; + +export const things: Category = { + icon: , + id: 'things', + sounds: [ + { + icon: , + id: 'keyboard', + label: 'Keyboard', + src: '/sounds/things/keyboard.mp3', + }, + { + icon: , + id: 'typewriter', + label: 'Typewriter', + src: '/sounds/things/typewriter.mp3', + }, + { + icon: , + id: 'paper', + label: 'Paper', + src: '/sounds/things/paper.mp3', + }, + { + icon: , + id: 'clock', + label: 'Clock', + src: '/sounds/things/clock.mp3', + }, + { + icon: , + id: 'wind-chimes', + label: 'Wind Chimes', + src: '/sounds/things/wind-chimes.mp3', + }, + { + icon: , + id: 'singing-bowl', + label: 'Singing Bowl', + src: '/sounds/things/singing-bowl.mp3', + }, + ], + title: 'Things', +}; diff --git a/src/data/sounds/urban.tsx b/src/data/sounds/urban.tsx new file mode 100644 index 0000000..b210e9d --- /dev/null +++ b/src/data/sounds/urban.tsx @@ -0,0 +1,65 @@ +import { + BiSolidCoffeeAlt, + BiSolidTrain, + BiSolidPlaneAlt, +} from 'react-icons/bi/index'; +import { FaCity, FaRoad } from 'react-icons/fa/index'; +import { PiRoadHorizonFill, PiSirenBold } from 'react-icons/pi/index'; + +import type { Category } from '../types'; + +export const urban: Category = { + icon: , + id: 'urban', + sounds: [ + { + icon: , + id: 'cafe', + label: 'Cafe', + src: '/sounds/urban/cafe.mp3', + }, + { + icon: , + id: 'highway', + label: 'Highway', + src: '/sounds/urban/highway.mp3', + }, + { + icon: , + id: 'road', + label: 'Road', + src: '/sounds/urban/road.mp3', + }, + { + icon: , + id: 'ambulance-siren', + label: 'Ambulance Siren', + src: '/sounds/urban/ambulance-siren.mp3', + }, + { + icon: , + id: 'train', + label: 'Train', + src: '/sounds/urban/train.mp3', + }, + { + icon: , + id: 'inside-a-train', + label: 'Inside a Train', + src: '/sounds/urban/inside-a-train.mp3', + }, + { + icon: , + id: 'airport', + label: 'Airport', + src: '/sounds/urban/airport.mp3', + }, + { + icon: , + id: 'airplane', + label: 'Airplane', + src: '/sounds/urban/airplane.mp3', + }, + ], + title: 'Urban', +};