1// Copyright (C) 2018 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15import {copyToClipboard} from '../base/clipboard'; 16import {Actions} from '../common/actions'; 17import {QueryResponse} from '../common/queries'; 18 19import {globals} from './globals'; 20 21export function onClickCopy(url: string) { 22 return (e: Event) => { 23 e.preventDefault(); 24 copyToClipboard(url); 25 globals.dispatch( 26 Actions.updateStatus({ 27 msg: 'Link copied into the clipboard', 28 timestamp: Date.now() / 1000, 29 }), 30 ); 31 }; 32} 33 34export async function queryResponseToClipboard( 35 resp: QueryResponse, 36): Promise<void> { 37 const lines: string[][] = []; 38 lines.push(resp.columns); 39 for (const row of resp.rows) { 40 const line = []; 41 for (const col of resp.columns) { 42 const value = row[col]; 43 line.push(value === null ? 'NULL' : `${value}`); 44 } 45 lines.push(line); 46 } 47 copyToClipboard(lines.map((line) => line.join('\t')).join('\n')); 48} 49