signoz/frontend/src/utils/downloadFile.ts
Yunus M 3661fd878e
feat: (onboarding): new flow part 3 (#6358)
* feat: onboarding v2 base setup

* feat: add onboarding v2 base setup and styles

- added header
- questionnaire blocks
- basic styling
- search based on UI config method (basic for UI behaviour)
- empty state result UI

* refactor: update class names in OnboardingPageV2 styles

* refactor(onboarding): components for QuestionBlock structural changes

* feat(onboarding): question block filterByCategory added

* feat(onboarding): component structure update and style updates

filterByCategory styling
spacing and styling fixes for options
steps style for question block
header styling update for sticky
added actions on header

* refactor(onboarding): bem SCSS nested way, this is the way

* refactor: moved the flow to another file

* feat: onboarding v2 base setup

* refactor: color variable fixes

* feat: onboarding part 3 changes

* feat: update handle select framework logic

* feat: add logos

* chore: remove old files

* feat: remove unwanted styles

* feat: minor ui updates

* feat: integrate invite team members and ingestion key details api

* feat: update docs links

* feat: added logos and fixed links

* feat: added and fixed links

* feat: handle routing after onboarding

* chore: update base url for docs links - testing

* feat: improve ux

* chore: update file

* feat: reset filters on next and back

* feat: update config

* feat: update api to use getIngestionData

* feat: show region and ingestion details

* feat: push changes behind feature flag

* feat: adding padding to onboarding container

* feat: add log events

* feat: handle back button state

* feat: redirect to onboarding v3 if ff is true and current path is get_started

* fix: update multi ingestion key test case

* feat: enable copy to clipboard

---------

Co-authored-by: Sudeep MP <sudipmelepunathilmp@gmail.com>
Co-authored-by: CheetoDa <Chitgupta24@gmail.com>
2025-03-02 13:05:22 +05:30

23 lines
644 B
TypeScript

export function downloadFile(content: string, filename: string): Promise<void> {
return new Promise((resolve, reject) => {
try {
const blob = new Blob([content], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', filename);
document.body.appendChild(link);
link.click();
// Clean up after the download
document.body.removeChild(link);
URL.revokeObjectURL(url);
resolve(); // Resolve the promise when download is triggered
} catch (error) {
reject(error); // Reject in case of any errors
}
});
}