feat(sdk,client): add menu to help navigation between apps
All checks were successful
arcad/edge/pipeline/head This commit looks good

This commit is contained in:
2023-04-18 17:57:16 +02:00
parent 9e3fc427bb
commit b5b4042cc7
59 changed files with 22276 additions and 486 deletions

View File

@ -10,5 +10,6 @@ Afin de pouvoir utiliser le SDK "client", vous devez inclure dans la page HTML d
Vous pourrez ensuite accéder aux variables globales suivantes:
- [`Edge`](./edge.md) - Client principal d'échange avec le serveur
- [`EdgeFrame`](./edge-frame.md)
- [`Edge.Client`](./edge-client.md) - Client principal d'échange avec le serveur
- [`Edge.Frame`](./edge-frame.md) - Utilitaire de communication avec une frame parente
- [`Edge.Menu`](./edge-menu.md) - Gestionnaire de menu

View File

@ -1,22 +1,22 @@
# `Edge`
# `Edge.Client`
## Méthodes
### `Edge.connect(): Promise`
### `Edge.Client.connect(): Promise`
> `TODO`
### `Edge.disconnect(): void`
### `Edge.Client.disconnect(): void`
> `TODO`
### `Edge.send(message: Object): void`
### `Edge.Client.send(message: Object): void`
> `TODO`
### `Edge.rpc(method: string, params: Object): Promise`
### `Edge.Client.rpc(method: string, params: Object): Promise`
> `TODO`
#### Exemple
@ -36,22 +36,22 @@ function echo(ctx, params) {
**Côté client**
```js
Edge.connect().then(() => {
Edge.rpc("echo", { hello: "world!" })
Edge.Client.connect().then(() => {
Edge.Client.rpc("echo", { hello: "world!" })
.then(result => console.log(result))
.catch(err => console.error(err));
});
```
### `Edge.upload(blob: Blob, metadata: Object): Promise`
### `Edge.Client.upload(blob: Blob, metadata: Object): Promise`
> `TODO`
### `Edge.blobUrl(bucketName: string, blobId: string): string`
### `Edge.Client.blobUrl(bucketName: string, blobId: string): string`
> `TODO`
### `Edge.externalUrl(url: string): string`
### `Edge.Client.externalUrl(url: string): string`
Retourne une URL "locale" permettant d'accéder à une ressource externe, en fonction de règles propres à l'application. Voir module [`fetch`](../server-api/fetch.md).
@ -64,5 +64,5 @@ Retourne une URL "locale" permettant d'accéder à une ressource externe, en fon
#### Exemple
```js
Edge.addEventListener("message", evt => console.log(evt.detail));
Edge.Client.addEventListener("message", evt => console.log(evt.detail));
```

View File

@ -1,8 +1,8 @@
# `EdgeFrame`
# `Edge.Frame`
## Méthodes
### `EdgeFrame.addEventListener(name: string, listener: (event) => void)`
### `Edge.Frame.addEventListener(name: string, listener: (event) => void)`
> `TODO`

View File

@ -0,0 +1,27 @@
# `Edge.Menu`
## Méthodes
### `Edge.Menu.show()`
Afficher le menu.
### `Edge.Menu.hide()`
Cacher le menu.
### `setItem(name: string, label:string, options?: { iconUrl?: string, linkUrl?: string, order?: number })`
Créer/mettre à jour l'item nommé de la section du menu associée à l'application.
### `removeItem(name: string)`
Supprimer l'item de la section du menu associée à l'application.
### `setAppIconUrl(url: string)`
Mettre à jour l'URL de l'icône de la section du menu associée à l'application.
### `setAppTitle(title: string)`
Mettre à jour le titre de la section du menu associée à l'application.

View File

@ -40,13 +40,13 @@ Créer le fichier `my-app/public/index.html`:
<script type="text/javascript">
// On utilise le SDK via la variable globale "Edge"
// pour se connecter au serveur de notre application.
Edge.connect().then(() => {
Edge.Client.connect().then(() => {
// Une fois connecté, on envoie un message au serveur.
Edge.send({ "hello": "world" });
Edge.Client.send({ "hello": "world" });
});
// On écoute les messages en provenance du serveur.
Edge.addEventListener("message", (evt) => {
Edge.Client.addEventListener("message", (evt) => {
console.log("New server message", evt.detail)
});
</script>

View File

@ -86,4 +86,4 @@ interface BlobInfo {
### `Metadata`
L'objet `Metadata` est un objet clé/valeur arbitraire transmis avec la requête de téléversement. Voir la méthode [`Edge.upload(blob, metadata)`](../client-api/README.md#edge-upload-blob-blob-metadata-object-promise) du SDK client.
L'objet `Metadata` est un objet clé/valeur arbitraire transmis avec la requête de téléversement. Voir la méthode [`Edge.Client.upload(blob, metadata)`](../client-api/README.md#edge-upload-blob-blob-metadata-object-promise) du SDK client.

View File

@ -13,7 +13,7 @@ Pour permettre aux utilisateurs d'accéder à des ressources distantes, vous dev
**Côté client**
```js
// Création d'une URL "locale" permettant d'accéder à la ressource distante
var url = Edge.externalUrl("http://example.com")
var url = Edge.Client.externalUrl("http://example.com")
// Vous pouvez utiliser l'URL comme attribut `src` d'une balise <img> par exemple
// ou effectuer une requête fetch() avec celle ci.

View File

@ -32,9 +32,9 @@ Aucune
```js
// Les données envoyées par le serveur sont accessibles
// via la propriété evt.detail.
Edge.on('message', evt => console.log(evt.detail));
Edge.Client.on('message', evt => console.log(evt.detail));
Edge.connect();
Edge.Client.connect();
```
**Côté serveur**

View File

@ -1,6 +1,6 @@
# Module `rpc`
Ce module permet de déclarer des méthodes côté serveur qui seront "invoquable" côté client via la méthode [`Edge.rpc(method: string, params: Object): Promise`](../client-api/README.md#edgerpcmethod-string-params-object-promise).
Ce module permet de déclarer des méthodes côté serveur qui seront "invoquable" côté client via la méthode [`Edge.Client.rpc(method: string, params: Object): Promise`](../client-api/README.md#edgerpcmethod-string-params-object-promise).
## Méthodes
@ -31,8 +31,8 @@ function echo(ctx, params) {
**Côté client**
```js
Edge.connect().then(() => {
Edge.rpc("echo", { hello: "world!" })
Edge.Client.connect().then(() => {
Edge.Client.rpc("echo", { hello: "world!" })
.then(result => console.log(result))
.catch(err => console.error(err));
});