signoz/frontend/src/utils/downloadFile.ts

23 lines
644 B
TypeScript
Raw Normal View History

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
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
}
});
}