Develop a Vaadin 14 component in Typescript that allows for sound recording functionality

I am currently working on developing a simple Vaadin component, similar to a Button, that will respond to both press and release events. Specifically, upon pressing the button, it should begin recording sound from the microphone, and upon release, it should upload the recorded data to the backend. I believe using the Upload Vaadin component for uploading is a suitable choice. While I have found examples demonstrating how to record and play back the data on a webpage, I am struggling to figure out how to integrate this with the Upload component. Additionally, I am uncertain about the compatibility of creating a component for Vaadin 14 + Lit in future LTS releases. Any guidance on getting started with developing my component would be greatly appreciated.

I came across an npm package for sound recording: link

And for creating a Lit-component: link

Alternatively, are there other options available, such as a custom StreamResource that could directly send the recorded data from the browser to the backend without relying on the Upload class?

Answer №1

Stumbled upon an interesting project and decided to replicate it with a few modifications: link

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Enhance JQuery functionality using Typescript

Currently, I am in the process of developing a Typescript plugin that generates a DOM for Header and attaches it to the page. This particular project utilizes JQuery for handling DOM operations. To customize the plugin further, I aim to transmit config Opt ...

The JSX element 'HeaderPublic' does not contain any construction or calling signatures

I am currently utilizing nx workspace to build the react ts application. Below is the library component: import { ReactElement } from 'react'; import styles from './header-public.module.scss'; export function HeaderPublic(): ReactElem ...

Encountering an unanticipated DOMException after transitioning to Angular 13

My Angular project is utilizing Bootstrap 4.6.2. One of the components features a table with ngb-accordion, which was functioning properly until I upgraded the project to Angular 13. Upon accessing the page containing the accordion in Angular 13, I encount ...

Transform Dictionary JSON into Typescript model

How can I convert the provided JSON structure into a TypeScript interface to ensure type safety? { "attributes1": { "myKey1": { "myinnerKey11": { "value": "value 1", "name&q ...

Guide to eliminating text following a space within a string in Angular 8

Having trouble trying to capitalize the first letter after an underscore in a string using Angular 8. Can anyone help me find a solution? app.component.ts: let content="power_managment 0vol"; alert(content.split( ).[0]); // desired output: "powerManagmen ...

A guide on obtaining the ReturnType within a UseQuery declaration

I am currently working on building a TypeScript wrapper for RTKQ queries that can be used generically. I have made progress on most of my goals, but I am encountering an issue with determining the return type for a generic or specific query. I have shared ...

What is the process for retrieving a script from an endpoint and utilizing it as a request response?

Currently, I am working on a project where we are required to retrieve a script from an endpoint for consumption. The API designed for the web returns a self-invoking function that sets a variable. The request header specifies the content-type as applicati ...

Tricks to access value from a Nativescript array of Switch elements when tapping a Button

Scenario: In my project, I am using Nativescript 5.0 with Angular. The data is fetched from an API and displayed in customers.component.ts I am successfully rendering the elements based on the received IDs in customers.component.html When the user inter ...

Implementing dynamic class changes with *ngIf within a child component

Apologies if this question has been addressed before, I found two similar answers here: Question related | Close Solution An Angular Material Sidenav component contains three components. The parent component (highlighted in red) includes tab-like but ...

Using TypeScript to pass objects to an arrow function

Issue at Hand: How do I successfully transfer an object from a parent component to a child component that is derived from the same interface? I am currently facing difficulties in rendering a list of tasks by looping through a list of task objects. The ma ...

Identifying when ngModel is dirty

In my application, the input fields are populated dynamically based on the API response. Each field has a corresponding set of buttons associated with it, which I only want to show when the field is edited. Here is an image of the form: https://i.sstatic ...

The Angular TypeScript lexicon scope becomes obscured when nested within a third-party API event handler function

I'm having trouble managing scope context in an Angular component while working with a third-party API (ESRI ArcGIS JavaScript API 4.7). I am specifically struggling when trying to handle an event from the ArcGIS API using their event handler callback ...

Issue: Map container not located when implementing a leaflet map with Angular

Here is the complete error message: core.js:6479 ERROR Error: Map container not found. at NewClass._initContainer (leaflet-src.js:4066) at NewClass.initialize (leaflet-src.js:3099) at new NewClass (leaflet-src.js:296) at Object.createMap [a ...

The default behavior of Angular-Keycloak does not include automatically attaching the bearer token to my http requests

I'm currently working on integrating keycloak-angular into my project, but I'm facing an issue with setting the bearer token as the default for my HTTP requests. "keycloak-angular": "9.1.0" "keycloak-js": "16.0 ...

Can someone explain how this "const s: string = ['a'][1];" is considered a valid Typescript expression?

I encountered an unexpected result when I executed the code const s: string = ['a'][1];. Instead of receiving a type error from the Typescript compiler, it returned undefined. This was surprising to me because I believed I was trying to assign an ...

Sanitizing HTML using the Ionic DomSanitizer may not be effective in bypassing security for trusted resource URLs

Encountering an error message that says GET http://localhost:8100/null 404 (Not Found) I've experimented with various DomSanitizer methods, but so far none of them have resolved the issue. The function in my controller is as follows: import { DomSan ...

Tips for displaying personalized data with MUI DatePicker

I need to create a React TypeScript component that displays a MUI DatePicker. When a new date is selected, I want a custom component (called <Badge>) to appear in the value field. Previously, I was able to achieve this with MUI Select: return ( ...

How is it possible that the type-checker is not flagging this code?

Do you find it acceptable that this code passes type-checking? function endlessLoop(): never { while (true) { } } let y = endlessLoop(); Why does y exist and fall under the never type category? ...

What is the best way to emphasize when the path matches exactly with '/'?

Is there a way to highlight the path only when it exactly matches '/'? Currently, even on 'Page 2', the 'Home' link is still highlighted. Check out the plunker here .active { color: red; } <a routerLinkActive="active" r ...

Advantages of creating model classes in Angular 2 and above

When developing a service for my domain, I discovered that I could easily implement the service using any type like this: list(): Observable<any> { const url = this.appUrlApi + this.serviceUrlApi; return this.http.get(url, { headers: this.he ...