Importar la clase User en lugar de usar User

Hello dear community,
I have some time to fix the warnings in our community. One of them is the following:

Deprecation notice: Import the User class instead of using User (deprecated since Discourse 2.4.0) (removal in Discourse 2.6.0)

I’m trying to debug if from the DevTools but It does not let me enter the file where the warning is coming from. It says:

Could not load content for URL/assets/var/www/discourse/public/assets/_application-d88a387e24ec4397c59d853355d071080a32aa58498a2ea0a509cebee72839c0.js : HTTP status code: 404

Anyway, I entered the safe mode with leaving only the theme. It looks like the warning is coming from my theme. In my theme I found out that I use in an HTML file:

<script type="text/discourse-plugin" version="0.8.13">
api.decorateWidget('header:before', helper => {
  // ... code
  var currentUser = Discourse.User.current();
  // ... code
});
</script>

So my technical questions are as follows:

  1. Could the warning come from this line? if so, how should I import User and solve the warning?
  2. How should I debug the compressed JS files from DevTools?

Thank you in advance! :slight_smile:

Change

var currentUser = Discourse.User.current();

to

var currentUser = api.getCurrentUser();

6 Me gusta

No need to import anything as it says in the message?

No, as the API already provides that for you.

2 Me gusta

Awesome! thank you very much :slight_smile:
It looks like I have more places to fix like Discourse.Site.currentProp('trustLevels').
Is there a proper documentation I could read in order to understand which method to use instead of the old ones?

Igual aquí, ¿necesitaría reemplazar Discourse.Site.currentProp('user_fields') (véase aquí) con otra cosa?

1 me gusta

Supongo que este tema debería pertenecer a la categoría Support - Discourse Meta de soporte.

Tengo el mismo problema: Aviso de obsolescencia: Importe la clase User en lugar de usar User (obsoleto desde Discourse 2.4.0) (eliminación en Discourse 2.6.0) en la última versión, 2.6.0.beta3.

Mi foro funciona lentamente la primera vez que un usuario lo visita.

¿Podrías explicarme por dónde debo empezar? ¿Cómo cambiar ese valor? ¿Desde el área de administración?

Gracias

Estos avisos de obsolescencia están dirigidos a desarrolladores de temas y complementos.

“Si no sabes cómo hacerlo, no eres la persona que debería hacerlo”.

3 Me gusta

Como desarrollador de temas, si estás utilizando algo más que User.current(), entonces la sustitución es la siguiente:

const User = require('discourse/model/user').default;
2 Me gusta