UNPKG

google-drive-picker

Version:

Google Drive Picker is a React Google Drive Picker component that allows you to select document from Google Drive.

3 lines (2 loc) 4.37 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).GoogleDrivePicker={},e.React)}(this,(function(e,t){"use strict";var o=function(){return o=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++)for(var n in t=arguments[o])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},o.apply(this,arguments)};function r(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var n={clientId:"",developerKey:"",viewId:"DOCS",callbackFunction:function(){return null}},i={queue:{},injectorMap:{},scriptMap:{}};function c(e){var o=t.useState({loaded:!1,error:!1}),r=o[0],n=o[1];return t.useEffect((function(){var t,o,r,c,a;if((null===(t=i.injectorMap)||void 0===t?void 0:t[e])||(i.injectorMap[e]="init"),"loaded"!==i.injectorMap[e]){if("error"!==i.injectorMap[e]){var l=function(t){var o,r,n,c;t&&console.log("error loading the script"),null===(r=null===(o=i.queue)||void 0===o?void 0:o[e])||void 0===r||r.forEach((function(e){return e(t)})),t&&i.scriptMap[e]?(null===(c=null===(n=i.scriptMap)||void 0===n?void 0:n[e])||void 0===c||c.remove(),i.injectorMap[e]="error"):i.injectorMap[e]="loaded",delete i.scriptMap[e]},s=function(e){n({loaded:!0,error:e})};return(null===(o=i.scriptMap)||void 0===o?void 0:o[e])||(i.scriptMap[e]=document.createElement("script"),i.scriptMap[e]&&(i.scriptMap[e].src=e,i.scriptMap[e].async=!0,document.body.append(i.scriptMap[e]),i.scriptMap[e].addEventListener("load",(function(){return l(!1)})),i.scriptMap[e].addEventListener("error",(function(){return l(!0)})),i.injectorMap[e]="loading")),(null===(r=i.queue)||void 0===r?void 0:r[e])?null===(a=null===(c=i.queue)||void 0===c?void 0:c[e])||void 0===a||a.push(s):i.queue[e]=[s],function(){var t,o;i.scriptMap[e]&&(null===(t=i.scriptMap[e])||void 0===t||t.removeEventListener("load",(function(){return l(!0)})),null===(o=i.scriptMap[e])||void 0===o||o.removeEventListener("error",(function(){return l(!0)})))}}n({loaded:!0,error:!0})}else n({loaded:!0,error:!1})}),[e]),[r.loaded,r.error]}e.default=function(){var e,i=t.useState(),a=i[0],l=i[1],s=t.useState(n),u=s[0],d=s[1],p=c("https://apis.google.com/js/api.js"),f=p[0],v=p[1],g=c("https://accounts.google.com/gsi/client"),M=g[0],w=g[1],k=t.useState(!1),y=k[0],b=k[1],h=t.useState(!1),m=h[0],E=h[1],S=["https://www.googleapis.com/auth/drive.readonly"];t.useEffect((function(){!f||v||!M||w||m||j()}),[f,v,M,w,m]),t.useEffect((function(){y&&u.token&&f&&!v&&M&&!w&&m&&(I(u),b(!1))}),[y,u.token,f,v,M,w,m]);var j=function(){window.gapi.load("auth"),window.gapi.load("picker",{callback:F})},F=function(){E(!0)},I=function(t){var o=t.token,r=t.appId,n=void 0===r?"":r,i=t.supportDrives,c=void 0!==i&&i,a=t.developerKey,l=t.viewId,s=void 0===l?"DOCS":l,u=t.disabled,d=t.multiselect,p=t.setOrigin,f=t.showUploadView,v=void 0!==f&&f,g=t.showUploadFolders,M=t.setParentFolder,w=void 0===M?"":M,k=t.viewMimeTypes,y=t.customViews,b=t.locale,h=void 0===b?"en":b,m=t.setIncludeFolders,E=t.setSelectFolderEnabled,S=t.disableDefaultView,j=void 0!==S&&S,F=t.callbackFunction;if(u)return!1;var I=new google.picker.DocsView(google.picker.ViewId[s]);k&&I.setMimeTypes(k),m&&I.setIncludeFolders(!0),E&&I.setSelectFolderEnabled(!0);var T=new google.picker.DocsUploadView;return k&&T.setMimeTypes(k),g&&T.setIncludeFolders(!0),w&&T.setParent(w),w&&I.setParent(w),e=(new google.picker.PickerBuilder).setAppId(n).setOAuthToken(o).setDeveloperKey(a).setLocale(h).setCallback(F),p&&e.setOrigin(p),j||e.addView(I),y&&y.map((function(t){return e.addView(t)})),d&&e.enableFeature(google.picker.Feature.MULTISELECT_ENABLED),v&&e.addView(T),c&&e.enableFeature(google.picker.Feature.SUPPORT_DRIVES),e.build().setVisible(!0),!0};return[function(e){(d(e),e.token)||google.accounts.oauth2.initTokenClient({client_id:e.clientId,scope:(e.customScopes?r(r([],S,!0),e.customScopes,!0):S).join(" "),callback:function(t){l(t),I(o(o({},e),{token:t.access_token}))}}).requestAccessToken();if(e.token&&f&&!v&&m)return I(e)},a]},Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=bundle.js.map