Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Added WPP.chat.setChatList function #2498

Merged
merged 6 commits into from
Nov 18, 2024
Merged

feat: Added WPP.chat.setChatList function #2498

merged 6 commits into from
Nov 18, 2024

Conversation

icleitoncosta
Copy link
Contributor

@icleitoncosta icleitoncosta commented Nov 16, 2024

Please, test the function and comment here

To use:

WPP.chat.setChatList('custom', ['[email protected]']);
WPP.chat.setChatList('unread');
WPP.chat.setChatList('favorites');
WPP.chat.setChatList('group');

@erSurajMahajan
Copy link

tested this PR, almost everything is working perfectly.
the only issue is the filters are not working in ARCHIVED chats.

to reproduce this issue

  1. add some random chats in archive
  2. open your all archives
  3. then try to execute WPP.chat.setChatList('unread');
    in console

@waTools-br
Copy link

waTools-br commented Nov 17, 2024

Muito bom mesmo, funcionalidade excelente... vai facilitar muito as automações que envolvem extensões...

O único detalhe que senti falta foi o filtro de etiquetas. Não é nada urgente, mas seria bacana tê-lo.

Antes consegui utilizar essa chamada para filtrar as etiquetas mais depois desse PR ela parou de funcionar
WPP.whatsapp.Cmd.setActiveFilter('labels', 'labelID')

@guirangel
Copy link

Esse código abaixo roda em loop infinito, aumentando em uns 15% o uso de CPU. Coloquei um console.log antes da linha const [type] = args; para verificar quando essa função seria chamada.

Ao clicar em Não lido, Favoritos ou Grupos, começa o loop infinito. Se mudar para custom, para o loop. Se deixar em ALL, também para.

/**

  • If a custom list is set and the user clicks on 'favorites' or 'unread,'
  • show the correct list, not just the allowed contacts.
    */
    wrapModuleFunction(
    isFilterExcludedFromSearchTreatmentInInboxFlow,
    async (func, ...args) => {
    const [type] = args;
    filterType = 'all';
    Cmd.trigger('set_active_filter', 'default');
    Cmd.trigger('set_active_filter', type);
    return func(...args);
    }
    );

@icleitoncosta
Copy link
Contributor Author

icleitoncosta commented Nov 17, 2024

tested this PR, almost everything is working perfectly. the only issue is the filters are not working in ARCHIVED chats.

to reproduce this issue

  1. add some random chats in archive
  2. open your all archives
  3. then try to execute WPP.chat.setChatList('unread');
    in console

This archives screen is different from the normal chat list screen, so it really won’t change. Only if you create a customized list since we’re changing the "should appear" there’s nothing else to do; only a few will show up anyway.

@icleitoncosta
Copy link
Contributor Author

Muito bom mesmo, funcionalidade excelente... vai facilitar muito as automações que envolvem extensões...

O único detalhe que senti falta foi o filtro de etiquetas. Não é nada urgente, mas seria bacana tê-lo.

Antes consegui utilizar essa chamada para filtrar as etiquetas mais depois desse PR ela parou de funcionar WPP.whatsapp.Cmd.setActiveFilter('labels', 'labelID')

Vou ajustar e colocar para funcionar

@icleitoncosta
Copy link
Contributor Author

Esse código abaixo roda em loop infinito, aumentando em uns 15% o uso de CPU. Coloquei um console.log antes da linha const [type] = args; para verificar quando essa função seria chamada.

Ao clicar em Não lido, Favoritos ou Grupos, começa o loop infinito. Se mudar para custom, para o loop. Se deixar em ALL, também para.

/**

  • If a custom list is set and the user clicks on 'favorites' or 'unread,'
  • show the correct list, not just the allowed contacts.
    */
    wrapModuleFunction(
    isFilterExcludedFromSearchTreatmentInInboxFlow,
    async (func, ...args) => {
    const [type] = args;
    filterType = 'all';
    Cmd.trigger('set_active_filter', 'default');
    Cmd.trigger('set_active_filter', type);
    return func(...args);
    }
    );

Boa, ótima avaliação @guirangel, vou ajustar

@guirangel
Copy link

Esse código abaixo roda em loop infinito, aumentando em uns 15% o uso de CPU. Coloquei um console.log antes da linha const [type] = args; para verificar quando essa função seria chamada.
Ao clicar em Não lido, Favoritos ou Grupos, começa o loop infinito. Se mudar para custom, para o loop. Se deixar em ALL, também para.
/**

  • If a custom list is set and the user clicks on 'favorites' or 'unread,'
  • show the correct list, not just the allowed contacts.
    */
    wrapModuleFunction(
    isFilterExcludedFromSearchTreatmentInInboxFlow,
    async (func, ...args) => {
    const [type] = args;
    filterType = 'all';
    Cmd.trigger('set_active_filter', 'default');
    Cmd.trigger('set_active_filter', type);
    return func(...args);
    }
    );

Boa, ótima avaliação @guirangel, vou ajustar

Ajustei da seguinte forma e funcionou. Ainda preciso testar mais.

  const [type] = args;

        if (type === "labels") return originalFunction(...args);

        if (filterType === "custom") {
            filterType = 'all';
            window.Store.Cmd.trigger('set_active_filter', 'default');
            window.Store.Cmd.trigger('set_active_filter', type);
            return originalFunction(...args);
        }

        filterType = 'all';
        window.Store.Cmd.trigger('set_active_filter', type);
        return originalFunction(...args);

@icleitoncosta
Copy link
Contributor Author

filterType = 'all';
window.Store.Cmd.trigger('set_active_filter', 'default');
window.Store.Cmd.trigger('set_active_filter', type);
return originalFunction(...args);

Obrigado @guirangel, realmente resolve.

@icleitoncosta icleitoncosta merged commit 4969c66 into main Nov 18, 2024
45 checks passed
@icleitoncosta icleitoncosta deleted the filter-list branch November 18, 2024 16:09
@matias-carpintini
Copy link

matias-carpintini commented Nov 18, 2024

thank you!! worked like a charm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants